From 84dfaa1ee235431df86125671a4dc5325de8a58f Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 13 Feb 2020 16:00:36 +0100 Subject: [PATCH] [jOOQ/jOOQ#9835] NPE when using AbstractDatabase instance without explicit configuredCustomTypes --- .../java/org/jooq/meta/AbstractDatabase.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java index b74a224baa..3782a78345 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java @@ -161,11 +161,11 @@ public abstract class AbstractDatabase implements Database { private boolean javaTimeTypes = true; private List configuredCatalogs = new ArrayList<>(); private List configuredSchemata = new ArrayList<>(); - private List configuredCustomTypes; - private List configuredEnumTypes; - private List configuredForcedTypes; + private List configuredCustomTypes = new ArrayList<>(); + private List configuredEnumTypes = new ArrayList<>(); + private List configuredForcedTypes = new ArrayList<>(); private Set unusedForcedTypes; - private List configuredEmbeddables; + private List configuredEmbeddables = new ArrayList<>(); private SchemaVersionProvider schemaVersionProvider; private CatalogVersionProvider catalogVersionProvider; private Comparator orderProvider; @@ -1191,9 +1191,9 @@ public abstract class AbstractDatabase implements Database { @Override public final String[] getSyntheticIdentities() { - if (syntheticIdentities == null) { + if (syntheticIdentities == null) syntheticIdentities = new String[0]; - } + return syntheticIdentities; } @@ -1204,6 +1204,9 @@ public abstract class AbstractDatabase implements Database { @Override public final List getConfiguredEnumTypes() { + if (configuredEnumTypes == null) + configuredEnumTypes = new ArrayList<>(); + return configuredEnumTypes; } @@ -1219,9 +1222,8 @@ public abstract class AbstractDatabase implements Database { @Override @Deprecated public final List getConfiguredCustomTypes() { - if (configuredCustomTypes == null) { + if (configuredCustomTypes == null) configuredCustomTypes = new ArrayList<>(); - } return configuredCustomTypes; } @@ -1234,7 +1236,7 @@ public abstract class AbstractDatabase implements Database { if (typeName == null) return null; - Iterator it1 = configuredCustomTypes.iterator(); + Iterator it1 = getConfiguredCustomTypes().iterator(); while (it1.hasNext()) { CustomType type = it1.next(); @@ -1649,9 +1651,9 @@ public abstract class AbstractDatabase implements Database { } private final List getConfiguredEnums() { - List result = new ArrayList<>(configuredCustomTypes.size()); + List result = new ArrayList<>(getConfiguredEnumTypes().size()); - for (EnumType enumType : configuredEnumTypes) { + for (EnumType enumType : getConfiguredEnumTypes()) { String name = enumType.getName(); DefaultEnumDefinition e = new DefaultEnumDefinition(getSchemata().get(0), name, null, true);