Buggy code:
public class ServerInventoryImpl implements ServerInventory { private static final Logger log = Logger . getLogger ( "org.jboss.as.host.controller" ) ; private final Map < String , ManagedServer > servers = Collections . synchronizedMap ( new HashMap < String , ManagedServer > ( ) ) ; private final HostControllerEnvironment environment ; private final ProcessControllerClient processControllerClient ; private final InetSocketAddress managementAddress ; private final DomainController domainController ; private volatile CountDownLatch processInventoryLatch ; private volatile Map < String , ProcessInfo > processInfos ; ServerInventoryImpl ( final DomainController domainController , final HostControllerEnvironment environment , final InetSocketAddress managementAddress , final ProcessControllerClient processControllerClient ) { } public String getServerProcessName ( String serverName ) { } public String getProcessServerName ( String processName ) { } public synchronized Map < String , ProcessInfo > determineRunningProcesses ( ) { } @ Override public void processInventory ( Map < String , ProcessInfo > processInfos ) { } public ServerStatus determineServerStatus ( final String serverName ) { } public ServerStatus startServer ( final String serverName , final ModelNode domainModel ) { } public void reconnectServer ( final String serverName , final ModelNode domainModel , final boolean running ) { final String processName = ManagedServer . getServerProcessName ( serverName ) ; final ManagedServer existing = servers . get ( processName ) ; if ( existing != null ) { ServerInventoryImpl . log . warnf ( "existing<seq2seq4repair_space>server<seq2seq4repair_space>[%s]<seq2seq4repair_space>with<seq2seq4repair_space>state:<seq2seq4repair_space>%s" , processName , existing . getState ( ) ) ; } ServerInventoryImpl . log . info ( ( "Reconnecting<seq2seq4repair_space>server<seq2seq4repair_space>" + serverName ) ) ; final ManagedServer server = createManagedServer ( serverName , domainModel ) ; servers . put ( processName , server ) ; if ( running ) { try { <START_BUG> server . reconnectServerProcess ( environment . getHostControllerPort ( ) ) ; <END_BUG> } catch ( IOException e ) { ServerInventoryImpl . log . errorf ( e , "Failed<seq2seq4repair_space>to<seq2seq4repair_space>send<seq2seq4repair_space>reconnect<seq2seq4repair_space>message<seq2seq4repair_space>to<seq2seq4repair_space>server<seq2seq4repair_space>%s" , serverName ) ; } } } public ServerStatus restartServer ( String serverName , final int gracefulTimeout , final ModelNode domainModel ) { } public ServerStatus stopServer ( final String serverName , final int gracefulTimeout ) { } @ Override public void serverRegistered ( final String serverProcessName , final ManagementChannel channel , ProxyCreatedCallback callback ) { } @ Override public void serverStartFailed ( String serverProcessName ) { } @ Override public void serverStopped ( String serverProcessName ) { } public void stopServers ( int gracefulTimeout ) { } private void checkState ( final ManagedServer server , final ServerState expected ) { } private ManagedServer createManagedServer ( final String serverName , final ModelNode domainModel ) { } public CallbackHandler getServerCallbackHandler ( ) { } }

Fix:
server . reconnectServerProcess ( ) ;