{"record":{"id":"eac6069aa99d7501","repo":"hibernate/hibernate-orm","slug":"re-entrant-enhancement-is-not-supported-classnam","errorCode":null,"errorMessage":"Re-entrant enhancement is not supported: {className}","messagePattern":"Re-entrant enhancement is not supported: (.+?)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/bytebuddy/ModelTypePool.java","lineNumber":92,"sourceCode":"\t *\n\t * @param classFileLocator\n\t * @param coreTypePool\n\t * @param cacheProvider\n\t * @return\n\t */\n\tstatic EnhancerClassLocator buildModelTypePool(ClassFileLocator classFileLocator, CoreTypePool coreTypePool, EnhancerCacheProvider cacheProvider) {\n\t\tObjects.requireNonNull( classFileLocator );\n\t\tObjects.requireNonNull( coreTypePool );\n\t\tObjects.requireNonNull( cacheProvider );\n\t\treturn new ModelTypePool( cacheProvider,\n\t\t\t\tnew EnhancerClassFileLocator( cacheProvider, classFileLocator ), coreTypePool );\n\t}\n\n\t@Override\n\tpublic void registerClassNameAndBytes(final String className, final byte[] bytes) {\n\t\tfinal var currentEnhancementState = poolCache.getEnhancementState();\n\t\tif ( currentEnhancementState != null ) {\n\t\t\tthrow new IllegalStateException( \"Re-entrant enhancement is not supported: \" + className );\n\t\t}\n\t\tfinal var state =\n\t\t\t\tnew EnhancerCacheProvider.EnhancementState( className,\n\t\t\t\t\t\tnew ClassFileLocator.Resolution.Explicit( Objects.requireNonNull( bytes ) ) );\n\t\t// Set the state first because the ClassFileLocator needs this in the doDescribe() call below\n\t\tpoolCache.setEnhancementState( state );\n\t\tstate.setTypePoolResolution( doDescribe( className ) );\n\t}\n\n\t@Override\n\tpublic void deregisterClassNameAndBytes(String className) {\n\t\tpoolCache.removeEnhancementState();\n\t}\n\n\t@Override\n\tpublic ClassFileLocator asClassFileLocator() {\n\t\treturn locator;\n\t}","sourceCodeStart":74,"sourceCodeEnd":110,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/bytecode/enhance/internal/bytebuddy/ModelTypePool.java#L74-L110","documentation":"Error \"Re-entrant enhancement is not supported: {className}\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Bytecode enhancement, proxy creation, or lazy interception is applied to an incompatible class or configuration.","commonSituations":"Build-time enhancement with module-system restrictions, mismatched Hibernate versions between build and runtime, or hibernate.bytecode.provider=none with a model that needs proxies.","solutions":["Avoid triggering enhancement of a class from within its own enhancement; check for circular class-loading during the enhancement run."],"exampleFix":"Avoid triggering enhancement of a class from within its own enhancement; check for circular class-loading during the enhancement run.","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}