diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java index 590a685f538..2a2ec2ad7b2 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java @@ -168,9 +168,9 @@ class ConfigurationClassEnhancer { try { subclass = enhancer.createClass(); } - catch (CodeGenerationException ex) { + catch (Throwable ex) { if (!fallback) { - throw ex; + throw (ex instanceof CodeGenerationException cgex ? cgex : new CodeGenerationException(ex)); } // Possibly a package-visible @Bean method declaration not accessible // in the given ClassLoader -> retry with original ClassLoader