using computeIfAbsent to avoid the duplicate registering of Destinations in the MBean Server
Signed-off-by: Marc-Olivier Fleury <mofleury@gmail.com>
This commit is contained in:
parent
69d52b2263
commit
ebe28c27e4
|
@ -540,24 +540,14 @@ public class HttpClient extends ContainerLifeCycle
|
|||
port = normalizePort(scheme, port);
|
||||
|
||||
Origin origin = new Origin(scheme, host, port);
|
||||
HttpDestination destination = destinations.get(origin);
|
||||
if (destination == null)
|
||||
{
|
||||
destination = transport.newHttpDestination(origin);
|
||||
addManaged(destination);
|
||||
HttpDestination existing = destinations.putIfAbsent(origin, destination);
|
||||
if (existing != null)
|
||||
{
|
||||
removeBean(destination);
|
||||
destination = existing;
|
||||
return destinations.computeIfAbsent(origin, o -> {
|
||||
HttpDestination newDestination = getTransport().newHttpDestination(o);
|
||||
addManaged(newDestination);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Created {}", newDestination);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (LOG.isDebugEnabled())
|
||||
LOG.debug("Created {}", destination);
|
||||
}
|
||||
}
|
||||
return destination;
|
||||
return newDestination;
|
||||
});
|
||||
}
|
||||
|
||||
protected boolean removeDestination(HttpDestination destination)
|
||||
|
|
Loading…
Reference in New Issue