From ee07ae3a8532b7bd166650547ffa36ef7bceccc8 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Thu, 22 Sep 2016 18:07:35 +0200 Subject: [PATCH] [#5561] Log warnings when users misconfigure forceType / customType elements --- .../java/org/jooq/util/AbstractDatabase.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java index 707c2cef9f..e3b3b415af 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java @@ -893,23 +893,33 @@ public abstract class AbstractDatabase implements Database { if (StringUtils.isBlank(type.getName())) { if (StringUtils.isBlank(type.getUserType())) { - StringWriter writer = new StringWriter(); - JAXB.marshal(type, writer); - log.warn("Bad configuration for . Either or is required: " + writer.toString()); + log.warn("Bad configuration for . Either or is required: " + toString(type)); it2.remove(); continue; } if (StringUtils.isBlank(type.getBinding()) && StringUtils.isBlank(type.getConverter())) { - StringWriter writer = new StringWriter(); - JAXB.marshal(type, writer); - log.warn("Bad configuration for . Either or is required: " + writer); + log.warn("Bad configuration for . Either or is required: " + toString(type)); it2.remove(); continue; } } + else { + if (!StringUtils.isBlank(type.getUserType())) { + log.warn("Bad configuration for . is not allowed when is provided: " + toString(type)); + type.setUserType(null); + } + if (!StringUtils.isBlank(type.getBinding())) { + log.warn("Bad configuration for . is not allowed when is provided: " + toString(type)); + type.setBinding(null); + } + if (!StringUtils.isBlank(type.getConverter())) { + log.warn("Bad configuration for . is not allowed when is provided: " + toString(type)); + type.setConverter(null); + } + } if (type.getUserType() != null && StringUtils.equals(type.getUserType(), typeName)) { return customType(this, type); @@ -919,6 +929,12 @@ public abstract class AbstractDatabase implements Database { return null; } + private final String toString(ForcedType type) { + StringWriter writer = new StringWriter(); + JAXB.marshal(type, writer); + return writer.toString(); + } + @Override public final void setConfiguredForcedTypes(List configuredForcedTypes) { this.configuredForcedTypes = configuredForcedTypes;