From 247c3bc7710746aa6dba67f947701d329ad69b99 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Fri, 21 Jul 2017 12:58:23 +0200 Subject: [PATCH] [#3704] Emit warning on conflict between and type rewriting when name is Boolean --- .../src/main/java/org/jooq/util/AbstractDatabase.java | 10 +++++----- .../org/jooq/util/AbstractTypedElementDefinition.java | 5 +++++ 2 files changed, 10 insertions(+), 5 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 fada2ebe59..b013ff0fa9 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java @@ -996,8 +996,8 @@ public abstract class AbstractDatabase implements Database { return null; } - @SuppressWarnings({ "unchecked" }) - static final String toString(ForcedType type) { + @SuppressWarnings({ "unchecked", "rawtypes" }) + static final String toString(Object object) { StringWriter writer = new StringWriter(); try { @@ -1165,10 +1165,10 @@ public abstract class AbstractDatabase implements Database { } }; - JAXBContext ctx = JAXBContext.newInstance(ForcedType.class); - Class clazz = (Class) type.getClass(); + Class clazz = object.getClass(); + JAXBContext ctx = JAXBContext.newInstance(clazz); XmlRootElement r = clazz.getAnnotation(XmlRootElement.class); - Object o = r != null ? type : new JAXBElement(new QName(Introspector.decapitalize(clazz.getSimpleName())), clazz, type); + Object o = r != null ? object : new JAXBElement(new QName(Introspector.decapitalize(clazz.getSimpleName())), clazz, object); Marshaller m = ctx.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractTypedElementDefinition.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractTypedElementDefinition.java index 7c925d9203..686314a86a 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractTypedElementDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractTypedElementDefinition.java @@ -200,6 +200,11 @@ abstract class AbstractTypedElementDefinition // [#677] SQLDataType matches are actual type-rewrites if (forcedDataType != null) { + + // [#3704] When matches a custom type AND a data type rewrite, the rewrite was usually accidental. + if (customType != null) + log.warn("Custom type conflict", child + " has custom type " + AbstractDatabase.toString(customType) + " forced by " + AbstractDatabase.toString(forcedType) + " but a data type rewrite applies"); + result = new DefaultDataTypeDefinition(db, child.getSchema(), uType, l, p, s, n, d, (Name) null, converter, binding); }