Buggy code:
public class DomainController { static final String DOMAIN_CONTROLLER_PROCESS_NAME = "domain-controller" ; private static final Logger log = Logger . getLogger ( "org.jboss.as.domain.controller" ) ; private final DomainControllerEnvironment environment ; private final ProcessMessageHandler messageHandler = new ProcessMessageHandler ( this ) ; private ProcessCommunicationHandler communicationHandler ; private final ServiceContainer serviceContainer = Factory . create ( ) ; public DomainController ( DomainControllerEnvironment environment ) { } void start ( ) { } synchronized void start ( final DomainControllerConfig domainControllerConfig ) { DomainController . log . info ( "Starting<seq2seq4repair_space>Domain<seq2seq4repair_space>Controller" ) ; final LocalDomainControllerElement localDomainControllerElement = domainControllerConfig . getDomainControllerElement ( ) ; final Host hostConfig = domainControllerConfig . getHost ( ) ; final BatchBuilder batchBuilder = serviceContainer . batchBuilder ( ) ; final ServiceActivatorContext serviceActivatorContext = new org . jboss . msc . service . ServiceActivatorContextImpl ( batchBuilder ) ; final Map < String , ServerInterfaceElement > interfaces = new HashMap < String , ServerInterfaceElement > ( ) ; final Set < ServerInterfaceElement > hostInterfaces = hostConfig . getInterfaces ( ) ; if ( hostInterfaces != null ) { for ( ServerInterfaceElement interfaceElement : hostInterfaces ) { interfaces . put ( interfaceElement . getName ( ) , interfaceElement ) ; } } final Map < String , ServerInterfaceElement > dcInterfaces = localDomainControllerElement . getInterfaces ( ) ; if ( dcInterfaces != null ) for ( Map . Entry < String , ServerInterfaceElement > interfaceElement : dcInterfaces . entrySet ( ) ) { interfaces . put ( interfaceElement . getKey ( ) , interfaceElement . getValue ( ) ) ; } for ( ServerInterfaceElement interfaceElement : interfaces . values ( ) ) { interfaceElement . activate ( serviceActivatorContext ) ; } final ServerManagerCommunicationService serverManagerCommunicationService = new ServerManagerCommunicationService ( this , localDomainControllerElement ) ; <START_BUG> batchBuilder . addService ( SERVICE_NAME , serverManagerCommunicationService ) . addListener ( new DomainController . DomainControllerStartupListener ( ) ) . addDependency ( JBOSS_NETWORK_INTERFACE . append ( localDomainControllerElement . getAdminInterface ( ) ) , NetworkInterfaceBinding . class , serverManagerCommunicationService . getInterfaceInjector ( ) ) . setInitialMode ( IMMEDIATE ) ; <END_BUG> try { batchBuilder . install ( ) ; } catch ( ServiceRegistryException e ) { throw new RuntimeException ( e ) ; } } synchronized void stop ( ) { } private void launchCommunicationHandler ( ) { } private void sendMessage ( ServerManagerProtocolCommand command ) { } private class DomainControllerStartupListener extends AbstractServiceListener < Void > { @ Override public void serviceStarted ( ServiceController < ? extends Void > serviceController ) { } @ Override public void serviceFailed ( ServiceController < ? extends Void > serviceController , StartException reason ) { } } }

Fix:
batchBuilder . addService ( SERVICE_NAME , serverManagerCommunicationService ) . addListener ( new DomainController . DomainControllerStartupListener ( ) ) . addDependency ( JBOSS_NETWORK_INTERFACE . append ( localDomainControllerElement . getInterfaceName ( ) ) , NetworkInterfaceBinding . class , serverManagerCommunicationService . getInterfaceInjector ( ) ) . setInitialMode ( IMMEDIATE ) ;