From dd1d06598dc2e67f7c55952f1c724fda5e531bbe Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 26 Feb 2025 14:02:57 +0100 Subject: [PATCH] [jOOQ/jOOQ#18052] ClassCastException in ArrayConverter when working with primitive typed int.class component type --- jOOQ/src/main/java/org/jooq/impl/Convert.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Convert.java b/jOOQ/src/main/java/org/jooq/impl/Convert.java index c4a71d7190..c0ef4304f7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Convert.java +++ b/jOOQ/src/main/java/org/jooq/impl/Convert.java @@ -376,8 +376,9 @@ final class Convert { if (from == null) return null; - Object[] arrayOfT = (Object[]) convertArray(from, converter.fromType()); - Object[] arrayOfU = (Object[]) Array.newInstance(converter.toType(), from.length); + // [#18052] Use wrapper types here, because we guarantee a U[] array typed result (i.e. Object[]) + Object[] arrayOfT = (Object[]) convertArray(from, wrapper(converter.fromType())); + Object[] arrayOfU = (Object[]) Array.newInstance(wrapper(converter.toType()), from.length); for (int i = 0; i < arrayOfT.length; i++) arrayOfU[i] = convert(arrayOfT[i], converter);