diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java index e789eaec2a..aaf65df460 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldTypeHelper.java @@ -281,26 +281,19 @@ public final class FieldTypeHelper { } } - static T getFromResultSet(ExecuteContext ctx, Field field, int index) + + static U getFromResultSet(ExecuteContext ctx, Field field, int index) throws SQLException { - Class type = field.getType(); - Class actual = type; - - // TODO [#650] This conversion code is still somewhat experimental... - // conversion and fetching should be made more object-oriented - Converter converter = DataTypes.converter(type); - if (converter != null) { - actual = converter.fromType(); - } - - Object result = getFromResultSet(ctx, actual, index); + @SuppressWarnings("unchecked") + Converter converter = (Converter) DataTypes.converter(field.getType()); if (converter != null) { - result = ((Converter) converter).from(result); + return converter.from(getFromResultSet(ctx, converter.fromType(), index)); + } + else { + return getFromResultSet(ctx, field.getType(), index); } - - return (T) result; } @SuppressWarnings("unchecked")