Buggy code:
class AppClientSubsystemAdd extends AbstractBoottimeAddStepHandler { static final AppClientSubsystemAdd INSTANCE = new AppClientSubsystemAdd ( ) ; private final String [ ] EMPTY_STRING = new String [ 0 ] ; private AppClientSubsystemAdd ( ) { } protected void populateModel ( ModelNode operation , ModelNode model ) throws OperationFailedException { } protected void performBoottime ( final OperationContext context , ModelNode operation , final ModelNode model , ServiceVerificationHandler verificationHandler , List < ServiceController < ? > > newControllers ) throws OperationFailedException { final String deployment = DEPLOYMENT . resolveModelAttribute ( context , model ) . asString ( ) ; final File file = new File ( FILE . resolveModelAttribute ( context , model ) . asString ( ) ) ; final String hostUrl = ( model . hasDefined ( Constants . HOST_URL ) ) ? HOST_URL . resolveModelAttribute ( context , model ) . asString ( ) : null ; final String connectionPropertiesUrl = ( model . hasDefined ( Constants . CONNECTION_PROPERTIES_URL ) ) ? CONNECTION_PROPERTIES_URL . resolveModelAttribute ( context , model ) . asString ( ) : null ; final List < String > parameters = PARAMETERS . unwrap ( context , model ) ; context . addStep ( new AbstractDeploymentChainStep ( ) { protected void execute ( DeploymentProcessorTarget processorTarget ) { if ( ( deployment != null ) && ( ! ( deployment . isEmpty ( ) ) ) ) { processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , STRUCTURE , STRUCTURE_APP_CLIENT , new ApplicationClientStructureProcessor ( deployment ) ) ; } processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , STRUCTURE , STRUCTURE_REGISTER_JBOSS_ALL_XML_PARSER , new org . jboss . as . server . deployment . jbossallxml . JBossAllXmlParserRegisteringProcessor < org . jboss . metadata . appclient . jboss . JBossClientMetaData > ( AppClientJBossAllParser . ROOT_ELEMENT , AppClientJBossAllParser . ATTACHMENT_KEY , new AppClientJBossAllParser ( ) ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , PARSE_APP_CLIENT_XML , new ApplicationClientParsingDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , POST_MODULE , POST_MODULE_APPLICATION_CLIENT_MANIFEST , new ApplicationClientManifestProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , POST_MODULE , POST_MODULE_APPLICATION_CLIENT_ACTIVE , new ActiveApplicationClientProcessor ( deployment ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , DEPENDENCIES , DEPENDENCIES_APPLICATION_CLIENT , new ApplicationClientDependencyProcessor ( ) ) ; <START_BUG> processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , INSTALL , INSTALL_APPLICATION_CLIENT , new ApplicationClientStartProcessor ( hostUrl , connectionPropertiesUrl , parameters . toArray ( EMPTY_STRING ) ) ) ; <END_BUG> } } , RUNTIME ) ; final ApplicationClientDeploymentService service = new ApplicationClientDeploymentService ( file ) ; newControllers . add ( context . getServiceTarget ( ) . addService ( SERVICE_NAME , service ) . addDependency ( JBOSS_SERVER_CONTROLLER , ModelController . class , service . getControllerValue ( ) ) . install ( ) ) ; } }

Fix:
processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , INSTALL , INSTALL_APPLICATION_CLIENT , new ApplicationClientStartProcessor ( hostUrl , connectionPropertiesUrl , ( parameters == null ? new String [ 0 ] : parameters . toArray ( EMPTY_STRING ) ) ) ) ;