[ https://issues.apache.org/jira/browse/LANG-69?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12468000 ]
Henri Yandell commented on LANG-69: ----------------------------------- svn ci -m "Applying a modified version of Maarten Coene's patch for #LANG-69. All unit tests pass; opinions would be very welcome though. " Sending src/java/org/apache/commons/lang/builder/ReflectionToStringBuilder.java Sending src/java/org/apache/commons/lang/builder/ToStringStyle.java Sending src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java Transmitting file data ... Committed revision 500495. Opinions very desired - I moved Maarten's register in appendStart into the appendClassName and appendIdentityHashCode and changed appendInternal as I mentioned above. > [lang] ToStringBuilder throws StackOverflowError when an Object cycle exists > ---------------------------------------------------------------------------- > > Key: LANG-69 > URL: https://issues.apache.org/jira/browse/LANG-69 > Project: Commons Lang > Issue Type: Bug > Affects Versions: 2.1 > Environment: Operating System: other > Platform: Other > Reporter: Maarten Coene > Assigned To: Gary Gregory > Fix For: 2.3 > > Attachments: 15938.patch, 36061.patch, LANG-69-refactor.patch, > ReflectionToStringBuilder.java.patch, ToStringBuilderTest.java.patch, > ToStringStyle.java.patch > > > Hi, > The ToStringBuilder throws a StackOverflowError if you have a cycle in the > object graph. For instance, the following toString() method will cause a > StackOverflowError: > public class ObjectCycle { > Object obj; > > public String toString() { > return new ToStringBuilder(this).append(obj).toString(); > } > } > public void testObjectCycle() { > ObjectCycle a = new ObjectCycle(); > ObjectCycle b = new ObjectCycle(); > a.obj = b; > b.obj = a; > a.toString(); // ouch: StackOverflowError > } > I'll submit some patches that fixes this problem... > regards, > Maarten -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]