diff --git a/jOOQ/src/main/java/org/jooq/impl/ConvertedDataType.java b/jOOQ/src/main/java/org/jooq/impl/ConvertedDataType.java index 89ee41157e..0af1912400 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ConvertedDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/ConvertedDataType.java @@ -84,7 +84,14 @@ class ConvertedDataType extends DefaultDataType { @SuppressWarnings("unchecked") @Override public U convert(Object object) { - return converter.from(delegate.convert(converter.to((U) object))); + if (converter.toType().isInstance(object)) { + return (U) object; + } + + // [#3200] Try to convert arbitrary objects to T + else { + return converter.from(delegate.convert(object)); + } } Converter converter() {