diff --git a/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java b/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java index 062027039730..e39ceddd6707 100644 --- a/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java +++ b/spring-core/src/main/java/org/springframework/cglib/core/AbstractClassGenerator.java @@ -26,6 +26,7 @@ import org.springframework.asm.ClassReader; import org.springframework.cglib.core.internal.Function; import org.springframework.cglib.core.internal.LoadingCache; +import org.springframework.core.NativeDetector; /** * Abstract class for all code-generating CGLIB utilities. @@ -359,6 +360,11 @@ protected Class generate(ClassLoaderData data) { // ignore } } + // SPRING PATCH BEGIN + if (NativeDetector.inNativeImage()) { + throw new UnsupportedOperationException("CGLIB enhancement should not happen at runtime on native image"); + } + // SPRING PATCH END byte[] b = strategy.generate(this); String className = ClassNameReader.getClassName(new ClassReader(b)); ProtectionDomain protectionDomain = getProtectionDomain();