Buggy code:
class UndertowSubsystemAdd extends AbstractBoottimeAddStepHandler { static final UndertowSubsystemAdd INSTANCE = new UndertowSubsystemAdd ( ) ; private UndertowSubsystemAdd ( ) { } @ Override protected void populateModel ( ModelNode operation , ModelNode model ) throws OperationFailedException { } @ Override public void performBoottime ( OperationContext context , ModelNode operation , final ModelNode model , ServiceVerificationHandler verificationHandler , List < ServiceController < ? > > newControllers ) throws OperationFailedException { try { Class . forName ( "org.apache.jasper.compiler.JspRuntimeContext" , true , this . getClass ( ) . getClassLoader ( ) ) ; } catch ( ClassNotFoundException e ) { ROOT_LOGGER . couldNotInitJsp ( e ) ; } final String defaultVirtualHost = DEFAULT_VIRTUAL_HOST . resolveModelAttribute ( context , model ) . asString ( ) ; final String defaultContainer = DEFAULT_SERVLET_CONTAINER . resolveModelAttribute ( context , model ) . asString ( ) ; final String defaultServer = DEFAULT_SERVER . resolveModelAttribute ( context , model ) . asString ( ) ; final ModelNode instanceIdModel = INSTANCE_ID . resolveModelAttribute ( context , model ) ; final String instanceId = ( instanceIdModel . isDefined ( ) ) ? instanceIdModel . asString ( ) : null ; ServiceTarget target = context . getServiceTarget ( ) ; newControllers . add ( target . addService ( UNDERTOW , new UndertowService ( defaultContainer , defaultServer , defaultVirtualHost , instanceId ) ) . setInitialMode ( ACTIVE ) . install ( ) ) ; context . addStep ( new AbstractDeploymentChainStep ( ) { @ Override protected void execute ( DeploymentProcessorTarget processorTarget ) { final SharedWebMetaDataBuilder sharedWebBuilder = new SharedWebMetaDataBuilder ( model . clone ( ) ) ; final SharedTldsMetaDataBuilder sharedTldsBuilder = new SharedTldsMetaDataBuilder ( model . clone ( ) ) ; <START_BUG> processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , STRUCTURE , STRUCTURE_REGISTER_JBOSS_ALL_WEB , new org . jboss . as . server . deployment . jbossallxml . JBossAllXmlParserRegisteringProcessor ( WebJBossAllParser . ROOT_ELEMENT , WebJBossAllParser . ATTACHMENT_KEY , new WebJBossAllParser ( ) ) ) ; <END_BUG> processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , STRUCTURE , STRUCTURE_WAR_DEPLOYMENT_INIT , new WarDeploymentInitializingProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , STRUCTURE , STRUCTURE_WAR , new org . wildfly . extension . undertow . deployment . WarStructureDeploymentProcessor ( sharedWebBuilder . create ( ) , sharedTldsBuilder ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , PARSE_WEB_DEPLOYMENT , new WebParsingDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , PARSE_WEB_DEPLOYMENT_FRAGMENT , new WebFragmentParsingDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , PARSE_JBOSS_WEB_DEPLOYMENT , new JBossWebParsingDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , PARSE_ANNOTATION_WAR , new WarAnnotationDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , PARSE_EAR_CONTEXT_ROOT , new EarContextRootProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , PARSE_WEB_MERGE_METADATA , new WarMetaDataProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , ( ( Phase . PARSE_WEB_MERGE_METADATA ) + 1 ) , new TldParsingDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , PARSE , ( ( Phase . PARSE_WEB_MERGE_METADATA ) + 2 ) , new WebComponentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , DEPENDENCIES , DEPENDENCIES_WAR_MODULE , new UndertowDependencyProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , POST_MODULE , POST_MODULE_EL_EXPRESSION_FACTORY , new ELExpressionFactoryProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , POST_MODULE , POST_MODULE_UNDERTOW_WEBSOCKETS , new UndertowJSRWebSocketDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , POST_MODULE , POST_MODULE_UNDERTOW_HANDLERS , new UndertowHandlersDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , INSTALL , INSTALL_SERVLET_INIT_DEPLOYMENT , new ServletContainerInitializerDeploymentProcessor ( ) ) ; processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , INSTALL , INSTALL_WAR_DEPLOYMENT , new UndertowDeploymentProcessor ( defaultVirtualHost , defaultContainer , defaultServer ) ) ; } } , RUNTIME ) ; ROOT_LOGGER . serverStarting ( Version . getVersionString ( ) ) ; DistributableSessionManagerFactoryBuilder builder = new DistributableSessionManagerFactoryBuilderValue ( ) . getValue ( ) ; if ( builder != null ) { newControllers . add ( builder . buildServerDependency ( target , new org . jboss . msc . value . ImmediateValue ( instanceId ) ) . setInitialMode ( ON_DEMAND ) . install ( ) ) ; } } }

Fix:
processorTarget . addDeploymentProcessor ( SUBSYSTEM_NAME , STRUCTURE , STRUCTURE_REGISTER_JBOSS_ALL_XML_PARSER , new org . jboss . as . server . deployment . jbossallxml . JBossAllXmlParserRegisteringProcessor ( WebJBossAllParser . ROOT_ELEMENT , WebJBossAllParser . ATTACHMENT_KEY , new WebJBossAllParser ( ) ) ) ;