From c7a4139bf6f70dda98f6459fa66d23d1f2643ae3 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Sat, 9 Jan 2021 12:54:06 +0100 Subject: [PATCH] [jOOQ/jOOQ#11208] ArrayStoreException when calling ResultQuery.fetchArray() --- jOOQ/src/main/java/org/jooq/impl/AbstractFetchable.java | 6 +++++- jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractFetchable.java b/jOOQ/src/main/java/org/jooq/impl/AbstractFetchable.java index 3e65d25777..aed978fa29 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractFetchable.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractFetchable.java @@ -1035,6 +1035,11 @@ abstract class AbstractFetchable extends AbstractQueryPart imp @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public final R[] fetchArray() { + Result r = fetch(); + + if (r.isNotEmpty()) + return r.toArray((R[]) Array.newInstance(r.get(0).getClass(), r.size())); + Class recordType; // TODO [#3185] Pull up getRecordType() @@ -1045,7 +1050,6 @@ abstract class AbstractFetchable extends AbstractQueryPart imp else throw new DataAccessException("Attempt to call fetchArray() on " + getClass()); - Result r = fetch(); return r.toArray((R[]) Array.newInstance(recordType, r.size())); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java index cc9f1fdf23..05056a9869 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java @@ -110,7 +110,7 @@ implements // ------------------------------------------------------------------------- // XXX: DSL API // ------------------------------------------------------------------------- - + @Override public final DropTableImpl cascade() { this.cascade = true;