From 7373db1fefa21cb189300ce3552d7fc99677ac17 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 22 Oct 2019 12:39:33 +0200 Subject: [PATCH] [jOOQ/jOOQ#7377] When using org.jooq.Meta, UniqueKey.getReferences throws NPE in Firebird --- jOOQ/src/main/java/org/jooq/impl/MetaImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index 75689d1d2b..f91d5a390e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -86,6 +86,7 @@ import static org.jooq.SQLDialect.SQLITE; import static org.jooq.impl.DSL.condition; import static org.jooq.impl.DSL.name; import static org.jooq.impl.Tools.EMPTY_SORTFIELD; +import static org.jooq.tools.StringUtils.defaultString; import java.io.Serializable; import java.sql.Connection; @@ -635,7 +636,9 @@ final class MetaImpl extends AbstractMeta { List> references = new ArrayList<>(groups.size()); for (Entry> entry : groups.entrySet()) { - Schema schema = schemas.get(entry.getKey().get(1)); + + // [#7377] The schema may be null instead of "" in some dialects + Schema schema = schemas.get(defaultString(entry.getKey().get(1, String.class))); String fkName = entry.getKey().get(3, String.class); String pkName = entry.getKey().get(4, String.class); @@ -913,7 +916,8 @@ final class MetaImpl extends AbstractMeta { Record key = entry.getKey(); Result value = entry.getValue(); - Schema schema = schemas.get(key.get(1)); + // [#7377] The schema may be null instead of "" in some dialects + Schema schema = schemas.get(defaultString(key.get(1, String.class))); Table fkTable = (Table) schema.getTable(key.get(2, String.class)); String fkName = key.get(3, String.class);