From 77496dd1c5e4eb0cdd14fd29bcbaa3082e262b2e Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 19 Sep 2024 12:34:47 +0200 Subject: [PATCH] [jOOQ/jOOQ#17288] NullPointerException in MetaImpl.getUniqueKeys() query when unique key cannot look up column references --- jOOQ/src/main/java/org/jooq/impl/MetaImpl.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index 203dea1ad4..c4c2d4ac68 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -1146,7 +1146,10 @@ final class MetaImpl extends AbstractMeta { groups.forEach((k, v) -> { v.sortAsc(5); - result.add(createUniqueKey(v, 4, 3, false)); + UniqueKey key = createUniqueKey(v, 4, 3, false); + + if (key != null) + result.add(key); }); } @@ -1404,6 +1407,12 @@ final class MetaImpl extends AbstractMeta { for (Field field : fields()) if (field.getName().equalsIgnoreCase(name)) f[i] = (TableField) field; + + // [#17288] Ignore the key if columns cannot be looked up. + if (f[i] == null) { + log.info("Cannot look up unique key column " + columnName + " in table: " + this + ". Consider reporting https://jooq.org/bug"); + return null; + } } String indexName = result.get(0).get(keyName, String.class);