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());
}
//====================================================================================================