Buggy code:
public class DomainModelControllerService extends AbstractControllerService implements DomainController , UnregisteredHostChannelRegistry { private static final Logger log = Logger . getLogger ( "org.jboss.as.host.controller" ) ; public static final ServiceName SERVICE_NAME = SERVICE_NAME_BASE . append ( "model" , "controller" ) ; private HostControllerConfigurationPersister hostControllerConfigurationPersister ; private final HostControllerEnvironment environment ; private final LocalHostControllerInfoImpl hostControllerInfo ; private final FileRepository localFileRepository ; private final RemoteFileRepository remoteFileRepository ; private final InjectedValue < ProcessControllerConnectionService > injectedProcessControllerConnection = new InjectedValue < ProcessControllerConnectionService > ( ) ; private final Map < String , ProxyController > hostProxies ; private final Map < String , ProxyController > serverProxies ; private final PrepareStepHandler prepareStepHandler ; private ManagementResourceRegistration modelNodeRegistration ; private final Map < String , Channel > unregisteredHostChannels = new HashMap < String , Channel > ( ) ; private final Map < String , ProxyCreatedCallback > proxyCreatedCallbacks = new HashMap < String , ProxyCreatedCallback > ( ) ; private final ExecutorService proxyExecutor = Executors . newCachedThreadPool ( ) ; private final AbstractVaultReader vaultReader ; private volatile ServerInventory serverInventory ; public static ServiceController < ModelController > addService ( final ServiceTarget serviceTarget , final HostControllerEnvironment environment , final ControlledProcessState processState ) { } private DomainModelControllerService ( final HostControllerEnvironment environment , final ControlledProcessState processState , final LocalHostControllerInfoImpl hostControllerInfo , final Map < String , ProxyController > hostProxies , final Map < String , ProxyController > serverProxies , final PrepareStepHandler prepareStepHandler , final AbstractVaultReader vaultReader ) { } @ Override public LocalHostControllerInfo getLocalHostInfo ( ) { } @ Override public void registerRemoteHost ( ProxyController hostControllerClient ) { } @ Override public void unregisterRemoteHost ( String id ) { } @ Override public void registerRunningServer ( ProxyController serverControllerClient ) { } @ Override public void unregisterRunningServer ( String serverName ) { } @ Override public ModelNode getProfileOperations ( String profileName ) { } @ Override public FileRepository getLocalFileRepository ( ) { } @ Override public FileRepository getRemoteFileRepository ( ) { } @ Override public void start ( StartContext context ) throws StartException { } @ Override protected void initModel ( Resource rootResource , ManagementResourceRegistration rootRegistration ) { } @ Override protected void boot ( final BootContext context ) throws ConfigurationPersistenceException { final ServiceTarget serviceTarget = context . getServiceTarget ( ) ; try { super . boot ( hostControllerConfigurationPersister . load ( ) ) ; Future < ServerInventory > inventoryFuture = ServerInventoryService . install ( serviceTarget , this , environment , hostControllerInfo . getNativeManagementInterface ( ) , hostControllerInfo . getNativeManagementPort ( ) ) ; ManagementRemotingServices . installRemotingEndpoint ( serviceTarget , MANAGEMENT_ENDPOINT , hostControllerInfo . getLocalHostName ( ) , MANAGEMENT , null , null ) ; <START_BUG> if ( ! ( hostControllerInfo . isMasterDomainController ( ) ) ) { <END_BUG> serverInventory = getFuture ( inventoryFuture ) ; Future < MasterDomainControllerClient > clientFuture = RemoteDomainConnectionService . install ( serviceTarget , getValue ( ) , hostControllerInfo . getLocalHostName ( ) , hostControllerInfo . getRemoteDomainControllerHost ( ) , hostControllerInfo . getRemoteDomainControllertPort ( ) , hostControllerInfo . getRemoteDomainControllerSecurityRealm ( ) , remoteFileRepository ) ; MasterDomainControllerClient masterDomainControllerClient = getFuture ( clientFuture ) ; try { masterDomainControllerClient . register ( ) ; } catch ( IllegalStateException e ) { DomainModelControllerService . log . error ( ( "Could<seq2seq4repair_space>not<seq2seq4repair_space>connect<seq2seq4repair_space>to<seq2seq4repair_space>master.<seq2seq4repair_space>Aborting.<seq2seq4repair_space>Error<seq2seq4repair_space>was:<seq2seq4repair_space>" + ( e . getMessage ( ) ) ) ) ; System . exit ( HOST_CONTROLLER_ABORT_EXIT_CODE ) ; } } else { ConfigurationPersister domainPersister = hostControllerConfigurationPersister . getDomainPersister ( ) ; super . boot ( domainPersister . load ( ) ) ; ManagementRemotingServices . installManagementChannelServices ( serviceTarget , MANAGEMENT_ENDPOINT , new MasterDomainControllerOperationHandlerService ( this , this ) , DomainModelControllerService . SERVICE_NAME , DOMAIN_CHANNEL , null , null ) ; serverInventory = getFuture ( inventoryFuture ) ; } NativeManagementAddHandler . installNativeManagementServices ( serviceTarget , hostControllerInfo , null , null ) ; ServerToHostOperationHandlerFactoryService . install ( serviceTarget , ServerInventoryService . SERVICE_NAME , proxyExecutor ) ; if ( ( hostControllerInfo . getHttpManagementInterface ( ) ) != null ) { HttpManagementAddHandler . installHttpManagementServices ( serviceTarget , hostControllerInfo , environment , null ) ; } startServers ( ) ; } finally { finishBoot ( ) ; } } private < T > T getFuture ( Future < T > future ) { } private void startServers ( ) { } @ Override public void stop ( StopContext context ) { } @ Override public void stopLocalHost ( ) { } @ Override public synchronized void registerChannel ( final String hostName , final Channel channel , final ProxyCreatedCallback callback ) { } @ Override public synchronized ProxyController popChannelAndCreateProxy ( final String hostName ) { } private class DelegatingServerInventory implements ServerInventory { public void serverRegistered ( String serverProcessName , Channel channel , ProxyCreatedCallback callback ) { } public void serverStartFailed ( String serverProcessName ) { } public void serverStopped ( String serverProcessName ) { } public String getServerProcessName ( String serverName ) { } public String getProcessServerName ( String processName ) { } public void processInventory ( Map < String , ProcessInfo > processInfos ) { } public Map < String , ProcessInfo > determineRunningProcesses ( ) { } public Map < String , ProcessInfo > determineRunningProcesses ( boolean serversOnly ) { } public ServerStatus determineServerStatus ( String serverName ) { } public int hashCode ( ) { } public ServerStatus startServer ( String serverName , ModelNode domainModel ) { } public void reconnectServer ( String serverName , ModelNode domainModel , boolean running ) { } public ServerStatus restartServer ( String serverName , int gracefulTimeout , ModelNode domainModel ) { } public ServerStatus stopServer ( String serverName , int gracefulTimeout ) { } public CallbackHandler getServerCallbackHandler ( ) { } public boolean equals ( Object obj ) { } public String toString ( ) { } @ Override public void stopServers ( int gracefulTimeout ) { } } private static < S > S service ( final Class < S > service ) { } }

Fix:
if ( ( ! ( hostControllerInfo . isMasterDomainController ( ) ) ) && ( ! ( environment . isUseCachedDc ( ) ) ) ) {