diff --git a/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java b/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java index a03c7dbcbfe..9748cbf39b0 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigFileApplicationListener.java @@ -211,12 +211,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, protected void addPropertySources(ConfigurableEnvironment environment, ResourceLoader resourceLoader) { RandomValuePropertySource.addToEnvironment(environment); - try { - new Loader(environment, resourceLoader).load(); - } - catch (IOException ex) { - throw new IllegalStateException("Unable to load configuration files", ex); - } + new Loader(environment, resourceLoader).load(); } /** @@ -342,7 +337,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, : resourceLoader; } - public void load() throws IOException { + public void load() { this.propertiesLoader = new PropertySourcesLoader(); this.activatedProfiles = false; this.profiles = Collections.asLifoQueue(new LinkedList()); @@ -430,8 +425,7 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, return unprocessedActiveProfiles; } - private void load(String location, String name, Profile profile) - throws IOException { + private void load(String location, String name, Profile profile) { String group = "profile=" + (profile == null ? "" : profile); if (!StringUtils.hasText(name)) { // Try to load directly from the location @@ -463,6 +457,18 @@ public class ConfigFileApplicationListener implements EnvironmentPostProcessor, } private PropertySource loadIntoGroup(String identifier, String location, + Profile profile) { + try { + return doLoadIntoGroup(identifier, location, profile); + } + catch (Exception ex) { + throw new IllegalStateException( + "Failed to load property source from location '" + location + "'", + ex); + } + } + + private PropertySource doLoadIntoGroup(String identifier, String location, Profile profile) throws IOException { Resource resource = this.resourceLoader.getResource(location); PropertySource propertySource = null;