Buggy code:
public class EqualsBuilderTest extends TestCase { public EqualsBuilderTest ( String name ) { } public static void main ( String [ ] args ) { } public static Test suite ( ) { } protected void setUp ( ) throws Exception { } protected void tearDown ( ) throws Exception { } static class TestObject { private int a ; public TestObject ( ) { } public TestObject ( int a ) { } public boolean equals ( Object o ) { } public void setA ( int a ) { } public int getA ( ) { } } static class TestSubObject extends EqualsBuilderTest . TestObject { private int b ; public TestSubObject ( ) { } public TestSubObject ( int a , int b ) { } public boolean equals ( Object o ) { } public void setB ( int b ) { } public int getB ( ) { } } static class TestEmptySubObject extends EqualsBuilderTest . TestObject { public TestEmptySubObject ( int a ) { } } static class TestTSubObject extends EqualsBuilderTest . TestObject { private transient int t ; public TestTSubObject ( int a , int t ) { } } static class TestTTSubObject extends EqualsBuilderTest . TestTSubObject { private transient int tt ; public TestTTSubObject ( int a , int t , int tt ) { } } static class TestTTLeafObject extends EqualsBuilderTest . TestTTSubObject { private int leafValue ; public TestTTLeafObject ( int a , int t , int tt , int leafValue ) { } } static class TestTSubObject2 extends EqualsBuilderTest . TestObject { private transient int t ; public TestTSubObject2 ( int a , int t ) { } public int getT ( ) { } public void setT ( int t ) { } } public void testReflectionEquals ( ) { } public void testReflectionHierarchyEquals ( ) { } public void testReflectionHierarchyEquals ( boolean testTransients ) { } public void testReflectionEqualsEquivalenceRelationship ( EqualsBuilderTest . TestObject to , EqualsBuilderTest . TestObject toBis , EqualsBuilderTest . TestObject toTer , EqualsBuilderTest . TestObject to2 , EqualsBuilderTest . TestObject oToChange , boolean testTransients ) { } public void testSuper ( ) { } public void testObject ( ) { } public void testLong ( ) { } public void testInt ( ) { } public void testShort ( ) { } public void testChar ( ) { } public void testByte ( ) { } public void testDouble ( ) { } public void testFloat ( ) { } public void testAccessors ( ) { } public void testBoolean ( ) { } public void testObjectArray ( ) { } public void testLongArray ( ) { } public void testIntArray ( ) { } public void testShortArray ( ) { } public void testCharArray ( ) { } public void testByteArray ( ) { } public void testDoubleArray ( ) { } public void testFloatArray ( ) { } public void testBooleanArray ( ) { } public void testMultiLongArray ( ) { } public void testMultiIntArray ( ) { } public void testMultiShortArray ( ) { } public void testMultiCharArray ( ) { } public void testMultiByteArray ( ) { } public void testMultiFloatArray ( ) { } public void testMultiDoubleArray ( ) { } public void testMultiBooleanArray ( ) { } public void testRaggedArray ( ) { } public void testMixedArray ( ) { } public void testObjectArrayHiddenByObject ( ) { } public void testLongArrayHiddenByObject ( ) { } public void testIntArrayHiddenByObject ( ) { } public void testShortArrayHiddenByObject ( ) { } public void testCharArrayHiddenByObject ( ) { } public void testByteArrayHiddenByObject ( ) { } public void testDoubleArrayHiddenByObject ( ) { } public void testFloatArrayHiddenByObject ( ) { } public void testBooleanArrayHiddenByObject ( ) { } public static class TestACanEqualB { private int a ; public TestACanEqualB ( int a ) { } public boolean equals ( Object o ) { } public int getA ( ) { } } public static class TestBCanEqualA { private int b ; public TestBCanEqualA ( int b ) { } public boolean equals ( Object o ) { } public int getB ( ) { } } public void testUnrelatedClasses ( ) { } public void testNpeForNullElement ( ) { } public void testReflectionEqualsExcludeFields ( ) throws Exception { EqualsBuilderTest . TestObjectWithMultipleFields x1 = new EqualsBuilderTest . TestObjectWithMultipleFields ( 1 , 2 , 3 ) ; EqualsBuilderTest . TestObjectWithMultipleFields x2 = new EqualsBuilderTest . TestObjectWithMultipleFields ( 1 , 3 , 4 ) ; assertTrue ( ( ! ( EqualsBuilder . reflectionEquals ( x1 , x2 ) ) ) ) ; <START_BUG> assertTrue ( ( ! ( EqualsBuilder . reflectionEquals ( x1 , x2 , null ) ) ) ) ; <END_BUG> assertTrue ( ( ! ( EqualsBuilder . reflectionEquals ( x1 , x2 , new String [ ] { } ) ) ) ) ; assertTrue ( ( ! ( EqualsBuilder . reflectionEquals ( x1 , x2 , new String [ ] { "xxx" } ) ) ) ) ; assertTrue ( ( ! ( EqualsBuilder . reflectionEquals ( x1 , x2 , new String [ ] { "two" } ) ) ) ) ; assertTrue ( ( ! ( EqualsBuilder . reflectionEquals ( x1 , x2 , new String [ ] { "three" } ) ) ) ) ; assertTrue ( EqualsBuilder . reflectionEquals ( x1 , x2 , new String [ ] { "two" , "three" } ) ) ; assertTrue ( EqualsBuilder . reflectionEquals ( x1 , x2 , new String [ ] { "one" , "two" , "three" } ) ) ; assertTrue ( EqualsBuilder . reflectionEquals ( x1 , x2 , new String [ ] { "one" , "two" , "three" , "xxx" } ) ) ; } static class TestObjectWithMultipleFields { private EqualsBuilderTest . TestObject one ; private EqualsBuilderTest . TestObject two ; private EqualsBuilderTest . TestObject three ; public TestObjectWithMultipleFields ( int one , int two , int three ) { } } }

Fix:
assertTrue ( ( ! ( EqualsBuilder . reflectionEquals ( x1 , x2 , ( ( String [ ] ) ( null ) ) ) ) ) ) ;