Relax registration checks for same servers somewhat.
If a server with the same ServerInfo is attempting to be re-registered, we will return the existing registered server, which is less surprising behavior than before.
This commit is contained in:
@@ -34,8 +34,15 @@ public class ServerMap {
|
||||
Preconditions.checkNotNull(serverInfo, "serverInfo");
|
||||
String lowerName = serverInfo.getName().toLowerCase(Locale.US);
|
||||
VelocityRegisteredServer rs = new VelocityRegisteredServer(server, serverInfo);
|
||||
Preconditions.checkArgument(servers.putIfAbsent(lowerName, rs) == null, "Server with name %s already registered", serverInfo.getName());
|
||||
return rs;
|
||||
|
||||
RegisteredServer existing = servers.putIfAbsent(lowerName, rs);
|
||||
if (existing != null && !existing.getServerInfo().equals(serverInfo)) {
|
||||
throw new IllegalArgumentException("Server with name " + serverInfo.getName() + " already registered");
|
||||
} else if (existing == null) {
|
||||
return rs;
|
||||
} else {
|
||||
return existing;
|
||||
}
|
||||
}
|
||||
|
||||
public void unregister(ServerInfo serverInfo) {
|
||||
|
Reference in New Issue
Block a user