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 4bb9e2640 Test JRE edge cases for Arrays versus ArrayUtils.hashCode()
4bb9e2640 is described below

commit 4bb9e2640d008a9cdf5db340ade4dc94b9f41497
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Jan 24 07:16:05 2026 -0500

    Test JRE edge cases for Arrays versus ArrayUtils.hashCode()
---
 src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
index fa06f61f4..f0d1a59fa 100644
--- a/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/ArrayUtilsTest.java
@@ -546,16 +546,26 @@ void testGetLength() {
 
     @Test
     void testHashCode() {
+        // JRE edge cases:
+        assertEquals(0, Arrays.hashCode((Object[]) null));
+        assertEquals(0, Arrays.hashCode((long[]) null));
+        assertEquals(1, Arrays.hashCode(ArrayUtils.EMPTY_OBJECT_ARRAY));
+        assertEquals(1, 
Arrays.hashCode(ArrayUtils.EMPTY_BOOLEAN_OBJECT_ARRAY));
+        // Our edge cases:
+        // assertEquals(0, ArrayUtils.hashCode(null));
+        // assertEquals(1, ArrayUtils.hashCode(ArrayUtils.EMPTY_OBJECT_ARRAY));
+        // assertEquals(1, 
ArrayUtils.hashCode(ArrayUtils.EMPTY_BOOLEAN_OBJECT_ARRAY));
+        // General cases:
         final long[][] array1 = {{2, 5}, {4, 5}};
         final long[][] array2 = {{2, 5}, {4, 6}};
         assertEquals(ArrayUtils.hashCode(array1), ArrayUtils.hashCode(array1));
         assertNotEquals(ArrayUtils.hashCode(array1), 
ArrayUtils.hashCode(array2));
-
+        // Objects
         final Object[] array3 = {new String(new char[]{'A', 'B'})};
         final Object[] array4 = {"AB"};
         assertEquals(ArrayUtils.hashCode(array3), ArrayUtils.hashCode(array3));
         assertEquals(ArrayUtils.hashCode(array3), ArrayUtils.hashCode(array4));
-
+        // Primitives to Objects
         final Object[] arrayA = {new boolean[]{true, false}, new int[]{6, 7}};
         final Object[] arrayB = {new boolean[]{true, false}, new int[]{6, 7}};
         assertEquals(ArrayUtils.hashCode(arrayB), ArrayUtils.hashCode(arrayA));

Reply via email to