diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldProxy.java b/jOOQ/src/main/java/org/jooq/impl/FieldProxy.java index 9959a8991e..d80ad91a00 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldProxy.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldProxy.java @@ -81,7 +81,9 @@ final class FieldProxy extends AbstractField implements TableField newDelegate) { this.delegate = newDelegate; - ((DataTypeProxy) getDataType()).type = (AbstractDataType) newDelegate.getDataType(); + // [#8278] Prevent StackOverflowErrors when the data type proxy is shared + if (!(newDelegate.getDataType() instanceof DataTypeProxy)) + ((DataTypeProxy) getDataType()).type = (AbstractDataType) newDelegate.getDataType(); } @Override