Buggy code:
public class ServerInventoryImpl implements ServerInventory { private static final Charset UTF_8 = Charset . forName ( "UTF-8" ) ; private final ConcurrentMap < String , ManagedServer > servers = new ConcurrentHashMap < String , ManagedServer > ( ) ; private final HostControllerEnvironment environment ; private final ProcessControllerClient processControllerClient ; private final InetSocketAddress managementAddress ; private final DomainController domainController ; private final ExtensionRegistry extensionRegistry ; private volatile boolean shutdown ; private volatile boolean connectionFinished ; private volatile CountDownLatch processInventoryLatch ; private volatile Map < String , ProcessInfo > processInfos ; private final Object shutdownCondition = new Object ( ) ; ServerInventoryImpl ( final DomainController domainController , final HostControllerEnvironment environment , final InetSocketAddress managementAddress , final ProcessControllerClient processControllerClient , final ExtensionRegistry extensionRegistry ) { } @ Override public String getServerProcessName ( String serverName ) { } @ Override public String getProcessServerName ( String processName ) { } @ Override public synchronized Map < String , ProcessInfo > determineRunningProcesses ( ) { } @ Override public Map < String , ProcessInfo > determineRunningProcesses ( final boolean serversOnly ) { } @ Override public ServerStatus determineServerStatus ( final String serverName ) { } @ Override public ServerStatus startServer ( final String serverName , final ModelNode domainModel ) { } @ Override public ServerStatus startServer ( final String serverName , final ModelNode domainModel , final boolean blocking ) { } @ Override public ServerStatus restartServer ( final String serverName , final int gracefulTimeout , final ModelNode domainModel ) { } @ Override public ServerStatus restartServer ( final String serverName , final int gracefulTimeout , final ModelNode domainModel , final boolean blocking ) { } @ Override public ServerStatus stopServer ( final String serverName , final int gracefulTimeout ) { } @ Override public ServerStatus stopServer ( final String serverName , final int gracefulTimeout , final boolean blocking ) { } @ Override public void reconnectServer ( final String serverName , final ModelNode domainModel , final byte [ ] authKey , final boolean running , final boolean stopping ) { if ( ( shutdown ) || ( connectionFinished ) ) { throw MESSAGES . hostAlreadyShutdown ( ) ; } final ManagedServer existing = servers . get ( serverName ) ; if ( existing != null ) { HostControllerLogger . ROOT_LOGGER . existingServerWithState ( serverName , existing . getState ( ) ) ; return ; } final ManagedServer server = createManagedServer ( serverName , domainModel , authKey ) ; if ( ( servers . putIfAbsent ( serverName , server ) ) != null ) { <START_BUG> HostControllerLogger . ROOT_LOGGER . existingServerWithState ( serverName , existing . getState ( ) ) ; <END_BUG> return ; } if ( running ) { if ( ! stopping ) { server . reconnectServerProcess ( ) ; domainController . registerRunningServer ( server . getProxyController ( ) ) ; } else { server . setServerProcessStopping ( ) ; } } else { server . removeServerProcess ( ) ; } synchronized ( shutdownCondition ) { shutdownCondition . notifyAll ( ) ; } } @ Override public void stopServers ( final int gracefulTimeout ) { } public void stopServers ( final int gracefulTimeout , final boolean blockUntilStopped ) { } void shutdown ( final boolean shutdownServers , final int gracefulTimeout , final boolean blockUntilStopped ) { } @ Override public ProxyController serverCommunicationRegistered ( final String serverProcessName , final ManagementChannelHandler channelAssociation ) { } @ Override public boolean serverReconnected ( String serverProcessName , ManagementChannelHandler channelHandler ) { } @ Override public void serverProcessStopped ( final String serverProcessName ) { } @ Override public void connectionFinished ( ) { } @ Override public void serverStarted ( String serverProcessName ) { } @ Override public void serverStartFailed ( final String serverProcessName ) { } @ Override public void serverProcessAdded ( final String serverProcessName ) { } @ Override public void serverProcessStarted ( final String serverProcessName ) { } @ Override public void serverProcessRemoved ( final String serverProcessName ) { } @ Override public void operationFailed ( final String serverProcessName , final ProcessMessageHandler . OperationType type ) { } @ Override public void processInventory ( final Map < String , ProcessInfo > processInfos ) { } private ManagedServer createManagedServer ( final String serverName , final ModelNode domainModel , final byte [ ] authKey ) { } @ Override public CallbackHandler getServerCallbackHandler ( ) { } }

Fix:
HostControllerLogger . ROOT_LOGGER . existingServerWithState ( serverName , server . getState ( ) ) ;