diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java index 2a6bae79fc5..fc7d387e561 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java @@ -238,11 +238,18 @@ class ConfigurationClassParser { } // Recursively process the configuration class and its superclass hierarchy. - SourceClass sourceClass = asSourceClass(configClass, filter); - do { - sourceClass = doProcessConfigurationClass(configClass, sourceClass, filter); + SourceClass sourceClass = null; + try { + sourceClass = asSourceClass(configClass, filter); + do { + sourceClass = doProcessConfigurationClass(configClass, sourceClass, filter); + } + while (sourceClass != null); + } + catch (IOException ex) { + throw new BeanDefinitionStoreException( + "I/O failure while processing configuration class [" + sourceClass + "]", ex); } - while (sourceClass != null); this.configurationClasses.put(configClass, configClass); }