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

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 98aaa30545 juneau-commons improvements
98aaa30545 is described below

commit 98aaa305454b25917b20ea373331512b51adef9e
Author: James Bognar <[email protected]>
AuthorDate: Thu Dec 25 09:36:45 2025 -0500

    juneau-commons improvements
---
 .../org/apache/juneau/commons/lang/HashCode.java   | 39 ++++++++++++----------
 .../apache/juneau/commons/lang/HashCode_Test.java  |  2 +-
 2 files changed, 22 insertions(+), 19 deletions(-)

diff --git 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/HashCode.java
 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/HashCode.java
index b3e77774fe..9db9ef2889 100644
--- 
a/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/HashCode.java
+++ 
b/juneau-core/juneau-commons/src/main/java/org/apache/juneau/commons/lang/HashCode.java
@@ -16,7 +16,10 @@
  */
 package org.apache.juneau.commons.lang;
 
+import static java.util.Arrays.*;
+
 import java.lang.annotation.*;
+import java.util.*;
 
 import org.apache.juneau.commons.utils.*;
 
@@ -116,24 +119,24 @@ public class HashCode {
                        add(AnnotationUtils.hash(a));
                } else if (o.getClass().isArray()) {
                        // Use content-based hashcode for arrays
-                       if (o instanceof Object[])
-                               add(java.util.Arrays.hashCode((Object[])o));
-                       else if (o instanceof int[])
-                               add(java.util.Arrays.hashCode((int[])o));
-                       else if (o instanceof long[])
-                               add(java.util.Arrays.hashCode((long[])o));
-                       else if (o instanceof short[])
-                               add(java.util.Arrays.hashCode((short[])o));
-                       else if (o instanceof byte[])
-                               add(java.util.Arrays.hashCode((byte[])o));
-                       else if (o instanceof char[])
-                               add(java.util.Arrays.hashCode((char[])o));
-                       else if (o instanceof boolean[])
-                               add(java.util.Arrays.hashCode((boolean[])o));
-                       else if (o instanceof float[])
-                               add(java.util.Arrays.hashCode((float[])o));
-                       else if (o instanceof double[])
-                               add(java.util.Arrays.hashCode((double[])o));
+                       if (o instanceof Object[] o2)
+                               add(deepHashCode(o2));
+                       else if (o instanceof int[] o2)
+                               add(Arrays.hashCode(o2));
+                       else if (o instanceof long[] o2)
+                               add(Arrays.hashCode(o2));
+                       else if (o instanceof short[] o2)
+                               add(Arrays.hashCode(o2));
+                       else if (o instanceof byte[] o2)
+                               add(Arrays.hashCode(o2));
+                       else if (o instanceof char[] o2)
+                               add(Arrays.hashCode(o2));
+                       else if (o instanceof boolean[] o2)
+                               add(Arrays.hashCode(o2));
+                       else if (o instanceof float[] o2)
+                               add(java.util.Arrays.hashCode(o2));
+                       else if (o instanceof double[] o2)
+                               add(java.util.Arrays.hashCode(o2));
                } else {
                        add(o.hashCode());
                }
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java 
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
index 036ebedba9..702d00bfbf 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/commons/lang/HashCode_Test.java
@@ -289,7 +289,7 @@ class HashCode_Test extends TestBase {
                var hc = HashCode.create();
                hc.add(arr);
                // Nested arrays are treated as Object[], so use Arrays.hashCode
-               assertEquals(31 * 1 + Arrays.hashCode(arr), hc.get());
+               assertEquals(31 * 1 + Arrays.deepHashCode(arr), hc.get());
        }
 
        
//====================================================================================================

Reply via email to