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() {