This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 2820ce1936 minor refactor: remove a deprecation warning
2820ce1936 is described below
commit 2820ce193673f00276fe315c4d744fb0625ec6e1
Author: Paul King <[email protected]>
AuthorDate: Sun Mar 29 10:56:36 2026 +1000
minor refactor: remove a deprecation warning
---
.../reflection/stdclasses/ArrayCachedClass.java | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git
a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
index a80294f845..03d96f2434 100644
---
a/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
+++
b/src/main/java/org/codehaus/groovy/reflection/stdclasses/ArrayCachedClass.java
@@ -23,6 +23,8 @@ import org.codehaus.groovy.reflection.CachedClass;
import org.codehaus.groovy.reflection.ClassInfo;
import org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation;
+import java.lang.reflect.Array;
+
public class ArrayCachedClass extends CachedClass {
public ArrayCachedClass(Class klazz, ClassInfo classInfo) {
super(klazz, classInfo);
@@ -36,7 +38,7 @@ public class ArrayCachedClass extends CachedClass {
Class paramComponent = getTheClass().getComponentType();
if (paramComponent.isPrimitive()) {
- argument =
DefaultTypeTransformation.convertToPrimitiveArray(argument, paramComponent);
+ argument = convertToPrimitiveArray(argument, paramComponent);
} else if (paramComponent == String.class && argument instanceof
GString[] strings) {
String[] ret = new String[strings.length];
for (int i = 0; i < strings.length; i++) {
@@ -49,4 +51,21 @@ public class ArrayCachedClass extends CachedClass {
return argument;
}
+ /**
+ * Converts a boxed object array (e.g. Integer[]) to a primitive array
(e.g. int[]).
+ * If the source is already the correct primitive array type, it is
returned as-is.
+ */
+ private static Object convertToPrimitiveArray(Object array, Class<?>
primitiveType) {
+ if (array.getClass().getComponentType() == primitiveType) return array;
+ Object[] source = (Object[]) array;
+ int length = source.length;
+ Object result = Array.newInstance(primitiveType, length);
+ for (int i = 0; i < length; i++) {
+ if (source[i] != null) {
+ Array.set(result, i,
DefaultTypeTransformation.castToType(source[i], primitiveType));
+ }
+ }
+ return result;
+ }
+
}