diff --git a/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java b/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java index 6f39f1983..c1f412180 100644 --- a/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java +++ b/src/test/org/apache/commons/lang/builder/ToStringBuilderTest.java @@ -946,4 +946,24 @@ class InheritedReflectionStaticFieldsFixture extends SimpleReflectionStaticField public void testReflectionNull() { assertEquals("", ReflectionToStringBuilder.toString(null)); } + + public void testObjectCycle() { + ObjectCycle a = new ObjectCycle(); + ObjectCycle b = new ObjectCycle(); + a.obj = b; + b.obj = a; + + String expected = toBaseString(a) + "[" + toBaseString(b) + "[" + toBaseString(a) + "]]"; + assertEquals(expected, a.toString()); + validateEmptyReflectionRegistry(); + } + + static class ObjectCycle { + Object obj; + + public String toString() { + return new ToStringBuilder(this).append(obj).toString(); + } + } + }