This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 25918c08e Tests a custom collection and map with 
EqualsBuilder.reflectionEquals
25918c08e is described below

commit 25918c08edf64b02eef7dd3734b91d770c8344aa
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Mar 7 14:03:18 2026 -0500

    Tests a custom collection and map with EqualsBuilder.reflectionEquals
---
 .../commons/lang3/builder/EqualsBuilderTest.java   | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git 
a/src/test/java/org/apache/commons/lang3/builder/EqualsBuilderTest.java 
b/src/test/java/org/apache/commons/lang3/builder/EqualsBuilderTest.java
index 874aff3ab..9c5e3a354 100644
--- a/src/test/java/org/apache/commons/lang3/builder/EqualsBuilderTest.java
+++ b/src/test/java/org/apache/commons/lang3/builder/EqualsBuilderTest.java
@@ -27,7 +27,9 @@
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.lang3.AbstractLangTest;
 import org.apache.commons.lang3.reflect.MethodUtils;
@@ -69,6 +71,19 @@ public int hashCode() {
         }
     }
 
+    static class TestArrayList extends ArrayList<String> {
+
+        private static final long serialVersionUID = 1L;
+
+        private final int extra;
+
+        TestArrayList(final int extra, final String... elements) {
+            super(Arrays.asList(elements));
+            this.extra = extra;
+        }
+
+    }
+
     public static class TestBCanEqualA {
         private final int b;
 
@@ -106,6 +121,19 @@ static class TestEmptySubObject extends TestObject {
         }
     }
 
+    static class TestHashMap extends HashMap<String, String> {
+
+        private static final long serialVersionUID = 1L;
+
+        private final int extra;
+
+        TestHashMap(final int extra, final Map<String, String> map) {
+            super(map);
+            this.extra = extra;
+        }
+
+    }
+
     static class TestObject {
         private int a;
 
@@ -1381,6 +1409,18 @@ private void testReflectionHierarchyEquals(final boolean 
testTransients) {
         assertFalse(EqualsBuilder.reflectionEquals(tso1, this));
     }
 
+    @Test
+    void testReflectionOnCustomArrayList() {
+        assertTrue(EqualsBuilder.reflectionEquals(new TestArrayList(1, "2", 
"3", "4"), new TestArrayList(1, "2", "3", "4")));
+        assertFalse(EqualsBuilder.reflectionEquals(new TestArrayList(1, "2", 
"3", "4"), new TestArrayList(2, "2", "3", "4")));
+    }
+
+    @Test
+    void testReflectionOnCustomHashMap() {
+        assertTrue(EqualsBuilder.reflectionEquals(new TestHashMap(1, new 
HashMap<>()), new TestHashMap(1, new HashMap<>())));
+        assertFalse(EqualsBuilder.reflectionEquals(new TestHashMap(1, new 
HashMap<>()), new TestHashMap(2, new HashMap<>())));
+    }
+
     @Test
     void testReset() {
         final EqualsBuilder equalsBuilder = new EqualsBuilder();

Reply via email to