Nullability refinements

See gh-32475
This commit is contained in:
Juergen Hoeller
2024-03-18 15:49:20 +01:00
parent ccebaa6b0c
commit 2f2c4188e5
2 changed files with 31 additions and 29 deletions

View File

@@ -163,35 +163,37 @@ public class SimpleAliasRegistry implements AliasRegistry {
List<String> aliasNamesCopy = new ArrayList<>(this.aliasNames); List<String> aliasNamesCopy = new ArrayList<>(this.aliasNames);
aliasNamesCopy.forEach(alias -> { aliasNamesCopy.forEach(alias -> {
String registeredName = this.aliasMap.get(alias); String registeredName = this.aliasMap.get(alias);
String resolvedAlias = valueResolver.resolveStringValue(alias); if (registeredName != null) {
String resolvedName = valueResolver.resolveStringValue(registeredName); String resolvedAlias = valueResolver.resolveStringValue(alias);
if (resolvedAlias == null || resolvedName == null || resolvedAlias.equals(resolvedName)) { String resolvedName = valueResolver.resolveStringValue(registeredName);
this.aliasMap.remove(alias); if (resolvedAlias == null || resolvedName == null || resolvedAlias.equals(resolvedName)) {
this.aliasNames.remove(alias); this.aliasMap.remove(alias);
} this.aliasNames.remove(alias);
else if (!resolvedAlias.equals(alias)) { }
String existingName = this.aliasMap.get(resolvedAlias); else if (!resolvedAlias.equals(alias)) {
if (existingName != null) { String existingName = this.aliasMap.get(resolvedAlias);
if (existingName.equals(resolvedName)) { if (existingName != null) {
// Pointing to existing alias - just remove placeholder if (existingName.equals(resolvedName)) {
this.aliasMap.remove(alias); // Pointing to existing alias - just remove placeholder
this.aliasNames.remove(alias); this.aliasMap.remove(alias);
return; this.aliasNames.remove(alias);
} return;
throw new IllegalStateException( }
"Cannot register resolved alias '" + resolvedAlias + "' (original: '" + alias + throw new IllegalStateException(
"') for name '" + resolvedName + "': It is already registered for name '" + "Cannot register resolved alias '" + resolvedAlias + "' (original: '" + alias +
existingName + "'."); "') 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);
} }
}); });
} }

View File

@@ -754,7 +754,7 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol
throws IOException { throws IOException {
String jarFileUrl = null; String jarFileUrl = null;
String rootEntryPath = null; String rootEntryPath = "";
String urlFile = rootDirUrl.getFile(); String urlFile = rootDirUrl.getFile();
int separatorIndex = urlFile.indexOf(ResourceUtils.WAR_URL_SEPARATOR); int separatorIndex = urlFile.indexOf(ResourceUtils.WAR_URL_SEPARATOR);