SimpleAliasRegistry logs info message for alias overriding
Issue: SPR-16871
(cherry picked from commit 74fcdea)
This commit is contained in:
@@ -22,6 +22,9 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.util.StringValueResolver;
|
||||
@@ -37,6 +40,9 @@ import org.springframework.util.StringValueResolver;
|
||||
*/
|
||||
public class SimpleAliasRegistry implements AliasRegistry {
|
||||
|
||||
/** Logger available to subclasses */
|
||||
protected final Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
/** Map from alias to canonical name */
|
||||
private final Map<String, String> aliasMap = new ConcurrentHashMap<>(16);
|
||||
|
||||
@@ -48,6 +54,9 @@ public class SimpleAliasRegistry implements AliasRegistry {
|
||||
synchronized (this.aliasMap) {
|
||||
if (alias.equals(name)) {
|
||||
this.aliasMap.remove(alias);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Alias definition '" + alias + "' ignored since it points to same name");
|
||||
}
|
||||
}
|
||||
else {
|
||||
String registeredName = this.aliasMap.get(alias);
|
||||
@@ -57,12 +66,19 @@ public class SimpleAliasRegistry implements AliasRegistry {
|
||||
return;
|
||||
}
|
||||
if (!allowAliasOverriding()) {
|
||||
throw new IllegalStateException("Cannot register alias '" + alias + "' for name '" +
|
||||
throw new IllegalStateException("Cannot define alias '" + alias + "' for name '" +
|
||||
name + "': It is already registered for name '" + registeredName + "'.");
|
||||
}
|
||||
if (this.logger.isInfoEnabled()) {
|
||||
logger.info("Overriding alias '" + alias + "' definition for registered name '" +
|
||||
registeredName + "' with new target name '" + name + "'");
|
||||
}
|
||||
}
|
||||
checkForAliasCircle(name, alias);
|
||||
this.aliasMap.put(alias, name);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Alias definition '" + alias + "' registered for name '" + name + "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user