Ignore placeholder resolution failure as well in case of ignoreResourceNotFound=true

Issue: SPR-11524
This commit is contained in:
Juergen Hoeller
2014-03-07 13:39:01 +01:00
parent 3dfa7e9ac0
commit bcde955ec9
2 changed files with 16 additions and 4 deletions

View File

@@ -310,9 +310,9 @@ class ConfigurationClassParser {
throw new IllegalArgumentException("At least one @PropertySource(value) location is required");
}
for (String location : locations) {
Resource resource = this.resourceLoader.getResource(
this.environment.resolveRequiredPlaceholders(location));
try {
Resource resource = this.resourceLoader.getResource(
this.environment.resolveRequiredPlaceholders(location));
if (!StringUtils.hasText(name) || this.propertySources.containsKey(name)) {
// We need to ensure unique names when the property source will
// ultimately end up in a composite
@@ -323,7 +323,14 @@ class ConfigurationClassParser {
this.propertySources.add(name, new ResourcePropertySource(name, resource));
}
}
catch (IllegalArgumentException ex) {
// from resolveRequiredPlaceholders
if (!ignoreResourceNotFound) {
throw ex;
}
}
catch (FileNotFoundException ex) {
// from ResourcePropertySource constructor
if (!ignoreResourceNotFound) {
throw ex;
}