From 1f0a1ab479feb02e1727017724bf71bdaade8046 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 11 Jul 2019 14:48:37 +0200 Subject: [PATCH] [jOOQ/jOOQ#8933] Added issue reference, better method name --- jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index ba58022231..1c84a4fa1e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -965,9 +965,12 @@ public class DefaultBinding implements Binding { } else if ( ctx.family() == POSTGRES) { + + // [#8933] In some cases, we cannot derive the cast type from + // array type directly Class arrayType = type == Object[].class - ? componentType(value) + ? deriveArrayTypeFromComponentType(value) : type; ctx.render().visit(cast(inline(PostgresUtils.toPGArrayString(value)), arrayType)); @@ -992,7 +995,7 @@ public class DefaultBinding implements Binding { } } - private final Class componentType(Object[] value) { + private final Class deriveArrayTypeFromComponentType(Object[] value) { for (Object o : value) if (o != null) return java.lang.reflect.Array.newInstance(o.getClass(), 0).getClass();