diff --git a/hibernate-core/src/main/java/org/hibernate/proxy/pojo/javassist/JavassistLazyInitializer.java b/hibernate-core/src/main/java/org/hibernate/proxy/pojo/javassist/JavassistLazyInitializer.java index a9761188a1..898c64d6f0 100644 --- a/hibernate-core/src/main/java/org/hibernate/proxy/pojo/javassist/JavassistLazyInitializer.java +++ b/hibernate-core/src/main/java/org/hibernate/proxy/pojo/javassist/JavassistLazyInitializer.java @@ -57,6 +57,11 @@ public class JavassistLazyInitializer extends BasicLazyInitializer implements Me final Method proceed, final Object[] args) throws Throwable { if ( this.constructed ) { + // HHH-10922 - Internal calls to bytecode enhanced methods cause proxy to be initialized + if ( thisMethod.getName().startsWith( "$$_hibernate_" ) ) { + return proceed.invoke( proxy, args ); + } + Object result; try { result = this.invoke( thisMethod, args, proxy ); @@ -84,7 +89,7 @@ public class JavassistLazyInitializer extends BasicLazyInitializer implements Me } if ( returnValue == target ) { - if ( returnValue.getClass().isInstance(proxy) ) { + if ( returnValue.getClass().isInstance( proxy ) ) { return proxy; } else {