From 91234dd7799d64f4bb390143fac690c1ae88e0f8 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 29 Mar 2022 15:01:23 +0200 Subject: [PATCH] [jOOQ/jOOQ#10277] Fixed some initialisation errors --- .../java/org/jooq/impl/AbstractDataType.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index cb3bbdafc6..8f6bb89a50 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -496,17 +496,21 @@ implements @Override public /* non-final */ String getTypeName() { - return typeName0(); + return getTypeName0(CONFIG); } - @Override - public /* non-final */ String getTypeName(Configuration configuration) { + private final String getTypeName0(Configuration configuration) { // [#10277] Enum types if (isEnum()) return renderedTypeName0(configuration); else - return getDataType(configuration).getTypeName(); + return typeName0(); + } + + @Override + public /* non-final */ String getTypeName(Configuration configuration) { + return ((AbstractDataType) getDataType(configuration)).getTypeName0(configuration); } @Override @@ -691,15 +695,15 @@ implements @Override public final boolean isNString() { - DataType t = getSQLDataType(); + AbstractDataType t = (AbstractDataType) getSQLDataType(); return t == NCHAR || t == NCLOB || t == NVARCHAR // [#9540] [#10368] In case the constant literals haven't been initialised yet - || NCHAR == null && "nchar".equals(t.getTypeName()) - || NCLOB == null && "nclob".equals(t.getTypeName()) - || NVARCHAR == null && "nvarchar".equals(t.getTypeName()); + || NCHAR == null && "nchar".equals(t.typeName0()) + || NCLOB == null && "nclob".equals(t.typeName0()) + || NVARCHAR == null && "nvarchar".equals(t.typeName0()); } @Override @@ -746,19 +750,19 @@ implements @Override public final boolean isLob() { - DataType t = getSQLDataType(); + AbstractDataType t = (AbstractDataType) getSQLDataType(); if (t == this) - return getTypeName().endsWith("lob"); + return typeName0().endsWith("lob"); else return t == BLOB || t == CLOB || t == NCLOB // [#9540] [#10368] In case the constant literals haven't been initialised yet - || BLOB == null && "blob".equals(t.getTypeName()) - || CLOB == null && "clob".equals(t.getTypeName()) - || NCLOB == null && "nclob".equals(t.getTypeName()); + || BLOB == null && "blob".equals(t.typeName0()) + || CLOB == null && "clob".equals(t.typeName0()) + || NCLOB == null && "nclob".equals(t.typeName0()); } @Override