/**
* Test Objects pointing to each other.
*/
public void testReflectionObjectCycle() {
ReflectionTestCycleA a = new ReflectionTestCycleA();
ReflectionTestCycleB b = new ReflectionTestCycleB();
a.b = b;
b.a = a;
// Used to caused:
// java.lang.StackOverflowError
// at java.lang.ClassLoader.getCallerClassLoader(Native Method)
// at java.lang.Class.getDeclaredFields(Class.java:992)
// at org.apache.commons.lang.builder.HashCodeBuilder.reflectionAppend(HashCodeBuilder.java:373)
// at org.apache.commons.lang.builder.HashCodeBuilder.reflectionHashCode(HashCodeBuilder.java:349)
// at org.apache.commons.lang.builder.HashCodeBuilder.reflectionHashCode(HashCodeBuilder.java:155)
// at
// org.apache.commons.lang.builder.HashCodeBuilderTest$ReflectionTestCycleB.hashCode(HashCodeBuilderTest.java:53)
// at org.apache.commons.lang.builder.HashCodeBuilder.append(HashCodeBuilder.java:422)
// at org.apache.commons.lang.builder.HashCodeBuilder.reflectionAppend(HashCodeBuilder.java:383)
// at org.apache.commons.lang.builder.HashCodeBuilder.reflectionHashCode(HashCodeBuilder.java:349)
// at org.apache.commons.lang.builder.HashCodeBuilder.reflectionHashCode(HashCodeBuilder.java:155)
// at
// org.apache.commons.lang.builder.HashCodeBuilderTest$ReflectionTestCycleA.hashCode(HashCodeBuilderTest.java:42)
// at org.apache.commons.lang.builder.HashCodeBuilder.append(HashCodeBuilder.java:422)
a.hashCode();
b.hashCode();
}