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

ahuber pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/main by this push:
     new d87f425f0a6 CAUSEWAY-3859: collector fix for _Arrays when element type 
is primitive
d87f425f0a6 is described below

commit d87f425f0a6ee652bcd394bca83a52ebea9771d3
Author: Andi Huber <[email protected]>
AuthorDate: Thu Mar 13 23:06:42 2025 +0100

    CAUSEWAY-3859: collector fix for _Arrays when element type is primitive
---
 .../apache/causeway/commons/internal/collections/_Arrays.java | 11 +++++++++--
 .../internal/collections/_Arrays_CollectorUnknownSize.java    |  4 +++-
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git 
a/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays.java
 
b/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays.java
index 1547a5d90ed..b7b892d0dea 100644
--- 
a/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays.java
+++ 
b/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays.java
@@ -28,6 +28,8 @@
 
 import org.jspecify.annotations.Nullable;
 
+import org.springframework.util.ClassUtils;
+
 import org.apache.causeway.commons.internal._Constants;
 import org.apache.causeway.commons.internal.base._Casts;
 import org.apache.causeway.commons.internal.base._NullSafe;
@@ -128,7 +130,7 @@ public static boolean isCollectionOrArrayType(final 
Class<?> cls) {
      * @param length
      */
     public static <T> Collector<T,?,T[]> toArray(final @NonNull Class<T> 
componentType, final int length){
-        return new _Arrays_Collector<T>(componentType, length);
+        return new 
_Arrays_Collector<T>(resolvePrimitiveIfNecessary(componentType), length);
     }
 
     /**
@@ -136,7 +138,12 @@ public static <T> Collector<T,?,T[]> toArray(final 
@NonNull Class<T> componentTy
      * @param componentType
      */
     public static <T> Collector<T,?,T[]> toArray(final @NonNull Class<T> 
componentType){
-        return new _Arrays_CollectorUnknownSize<T>(componentType);
+        return new 
_Arrays_CollectorUnknownSize<T>(resolvePrimitiveIfNecessary(componentType));
+    }
+
+    private static <T> Class<T> resolvePrimitiveIfNecessary(final Class<T> 
componentType) {
+        var nonPrimitive = 
ClassUtils.resolvePrimitiveIfNecessary(componentType);
+        return _Casts.uncheckedCast(nonPrimitive);
     }
 
     // -- CONCATENATION
diff --git 
a/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays_CollectorUnknownSize.java
 
b/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays_CollectorUnknownSize.java
index 568a66460ee..bf507274341 100644
--- 
a/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays_CollectorUnknownSize.java
+++ 
b/commons/src/main/java/org/apache/causeway/commons/internal/collections/_Arrays_CollectorUnknownSize.java
@@ -36,7 +36,9 @@
  *
  * Collector for Arrays.
  */
-record _Arrays_CollectorUnknownSize<T>(Class<T> componentType) implements 
Collector<T, List<T>, T[]> {
+record _Arrays_CollectorUnknownSize<T>(
+    Class<T> componentType)
+implements Collector<T, List<T>, T[]> {
 
     @Override
     public Supplier<List<T>> supplier() {

Reply via email to