Reputation: 221
I am currently using jooq and for my unit tests I use an in memory H2 DB where I create the tables using jooq generated metadata as described in https://www.jooq.org/doc/3.9/manual/sql-building/ddl-statements/generating-ddl/
With 3.8.4 it works fine but on upgrading to 3.9.0 (or 3.9.1) I am getting an error:
Queries queries = dslContext.ddl(DefaultSchema.DEFAULT_SCHEMA);
for (Query query : queries.queries()) {
query.execute();
}
Error:
java.lang.ArrayIndexOutOfBoundsException: -1
at org.jooq.impl.SchemaImpl.<init>(SchemaImpl.java:78)
at org.jooq.impl.DSL.schema(DSL.java:7199)
at org.jooq.impl.DefaultDSLContext.createSchema(DefaultDSLContext.java:2605)
at org.jooq.impl.DefaultDSLContext.createSchema(DefaultDSLContext.java:2600)
at org.jooq.impl.DDL.queries(DDL.java:112)
at org.jooq.impl.DefaultDSLContext.ddl(DefaultDSLContext.java:2487)
at org.jooq.impl.DefaultDSLContext.ddl(DefaultDSLContext.java:2482)
Upvotes: 2
Views: 356
Reputation: 220762
Thanks for reporting. This is a bug in jOOQ 3.9.0 and 3.9.1. I've created https://github.com/jOOQ/jOOQ/issues/5979 for this.
A workaround is to exclude schema generation here:
Queries queries = dslContext.ddl(DefaultSchema.DEFAULT_SCHEMA, DDLFlag.TABLE, ...);
Upvotes: 1