diff --git a/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java b/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java index 0423362b77e..052d64fd18d 100644 --- a/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java +++ b/spring-core/src/main/java/org/springframework/core/SimpleAliasRegistry.java @@ -163,35 +163,37 @@ public class SimpleAliasRegistry implements AliasRegistry { List aliasNamesCopy = new ArrayList<>(this.aliasNames); aliasNamesCopy.forEach(alias -> { String registeredName = this.aliasMap.get(alias); - String resolvedAlias = valueResolver.resolveStringValue(alias); - String resolvedName = valueResolver.resolveStringValue(registeredName); - if (resolvedAlias == null || resolvedName == null || resolvedAlias.equals(resolvedName)) { - this.aliasMap.remove(alias); - this.aliasNames.remove(alias); - } - else if (!resolvedAlias.equals(alias)) { - String existingName = this.aliasMap.get(resolvedAlias); - if (existingName != null) { - if (existingName.equals(resolvedName)) { - // Pointing to existing alias - just remove placeholder - this.aliasMap.remove(alias); - this.aliasNames.remove(alias); - return; - } - throw new IllegalStateException( - "Cannot register resolved alias '" + resolvedAlias + "' (original: '" + alias + - "') for name '" + resolvedName + "': It is already registered for name '" + - existingName + "'."); + if (registeredName != null) { + String resolvedAlias = valueResolver.resolveStringValue(alias); + String resolvedName = valueResolver.resolveStringValue(registeredName); + if (resolvedAlias == null || resolvedName == null || resolvedAlias.equals(resolvedName)) { + this.aliasMap.remove(alias); + this.aliasNames.remove(alias); + } + else if (!resolvedAlias.equals(alias)) { + String existingName = this.aliasMap.get(resolvedAlias); + if (existingName != null) { + if (existingName.equals(resolvedName)) { + // Pointing to existing alias - just remove placeholder + this.aliasMap.remove(alias); + this.aliasNames.remove(alias); + return; + } + throw new IllegalStateException( + "Cannot register resolved alias '" + resolvedAlias + "' (original: '" + alias + + "') for name '" + resolvedName + "': It is already registered for name '" + + existingName + "'."); + } + checkForAliasCircle(resolvedName, resolvedAlias); + this.aliasMap.remove(alias); + this.aliasNames.remove(alias); + this.aliasMap.put(resolvedAlias, resolvedName); + this.aliasNames.add(resolvedAlias); + } + else if (!registeredName.equals(resolvedName)) { + this.aliasMap.put(alias, resolvedName); + this.aliasNames.add(alias); } - checkForAliasCircle(resolvedName, resolvedAlias); - this.aliasMap.remove(alias); - this.aliasNames.remove(alias); - this.aliasMap.put(resolvedAlias, resolvedName); - this.aliasNames.add(resolvedAlias); - } - else if (!registeredName.equals(resolvedName)) { - this.aliasMap.put(alias, resolvedName); - this.aliasNames.add(alias); } }); } diff --git a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java index 21fcea3e4d7..cbd1847d678 100644 --- a/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java +++ b/spring-core/src/main/java/org/springframework/core/io/support/PathMatchingResourcePatternResolver.java @@ -754,7 +754,7 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol throws IOException { String jarFileUrl = null; - String rootEntryPath = null; + String rootEntryPath = ""; String urlFile = rootDirUrl.getFile(); int separatorIndex = urlFile.indexOf(ResourceUtils.WAR_URL_SEPARATOR);