From 7233174f12ae6d4d43c4dcd9d942676ec5c3dde9 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 3 Apr 2018 11:23:17 +0200 Subject: [PATCH] [#7370] Regression in jOOQ 3.11 when binding unknown data types --- jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index bcd704fc19..1286ffe353 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -2570,7 +2570,13 @@ public class DefaultBinding implements Binding { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override final void set0(BindingSetStatementContext ctx, Object value) throws SQLException { - ((AbstractBinding) binding(value.getClass(), isLob)).set0(ctx, value); + AbstractBinding b = (AbstractBinding) binding(value.getClass(), isLob); + + // [#7370] Prevent a stack overflow error on unsupported data types + if (b instanceof DefaultOtherBinding) + ctx.statement().setObject(ctx.index(), value); + else + b.set0(ctx, value); } @Override @@ -2594,7 +2600,7 @@ public class DefaultBinding implements Binding { @Override final void set0(BindingSetSQLOutputContext ctx, Object value) throws SQLException { - throw new UnsupportedOperationException("Type " + type + " is not supported"); + throw new DataTypeException("Type " + type + " is not supported"); } @Override