Buggy code:
public class UndertowDeploymentProcessor implements DeploymentUnitProcessor { private final String defaultServer ; private final String defaultHost ; private final String defaultContainer ; public UndertowDeploymentProcessor ( String defaultHost , final String defaultContainer , String defaultServer ) { } @ Override public void deploy ( final DeploymentPhaseContext phaseContext ) throws DeploymentUnitProcessingException { } static String hostNameOfDeployment ( final WarMetaData metaData , final String defaultHost ) { } @ Override public void undeploy ( final DeploymentUnit context ) { } private void processDeployment ( final WarMetaData warMetaData , final DeploymentUnit deploymentUnit , final ServiceTarget serviceTarget , String hostName ) throws DeploymentUnitProcessingException { } static String pathNameOfDeployment ( final DeploymentUnit deploymentUnit , final JBossWebMetaData metaData ) { } void processManagement ( final DeploymentUnit unit , JBossWebMetaData metaData ) { } private DeploymentInfo createServletConfig ( final JBossWebMetaData mergedMetaData , final DeploymentUnit deploymentUnit , final Module module , final DeploymentClassIndex classReflectionIndex , final WebInjectionContainer injectionContainer , final ComponentRegistry componentRegistry , final ScisMetaData scisMetaData , final VirtualFile deploymentRoot ) throws DeploymentUnitProcessingException { try { mergedMetaData . resolveAnnotations ( ) ; final DeploymentInfo d = new DeploymentInfo ( ) ; d . setContextPath ( mergedMetaData . getContextRoot ( ) ) ; if ( ( mergedMetaData . getDescriptionGroup ( ) ) != null ) { d . setDisplayName ( mergedMetaData . getDescriptionGroup ( ) . getDisplayName ( ) ) ; } d . setDeploymentName ( deploymentUnit . getName ( ) ) ; d . setResourceLoader ( new DeploymentResourceLoader ( deploymentRoot ) ) ; d . setClassLoader ( module . getClassLoader ( ) ) ; final String servletVersion = mergedMetaData . getServletVersion ( ) ; if ( servletVersion != null ) { d . setMajorVersion ( Integer . parseInt ( ( ( servletVersion . charAt ( 0 ) ) + "" ) ) ) ; d . setMinorVersion ( Integer . parseInt ( ( ( servletVersion . charAt ( 2 ) ) + "" ) ) ) ; } else { d . setMajorVersion ( 3 ) ; <START_BUG> d . setMajorVersion ( 1 ) ; <END_BUG> } boolean is22OrOlder ; if ( ( d . getMajorVersion ( ) ) == 1 ) { is22OrOlder = true ; } else if ( ( d . getMajorVersion ( ) ) == 2 ) { is22OrOlder = ( d . getMinorVersion ( ) ) < 3 ; } else { is22OrOlder = false ; } HashMap < String , TagLibraryInfo > tldInfo = createTldsInfo ( deploymentUnit , classReflectionIndex , componentRegistry , d ) ; HashMap < String , JspPropertyGroup > propertyGroups = createJspConfig ( mergedMetaData ) ; JspServletBuilder . setupDeployment ( d , propertyGroups , tldInfo , new UndertowJSPInstanceManager ( injectionContainer ) ) ; d . setJspConfigDescriptor ( new JspConfigDescriptorImpl ( tldInfo . values ( ) , propertyGroups . values ( ) ) ) ; d . setDefaultServletConfig ( new DefaultServletConfig ( true , Collections . < String > emptySet ( ) ) ) ; final ServletInfo jspServlet = new ServletInfo ( "Default<seq2seq4repair_space>JSP<seq2seq4repair_space>Servlet" , JspServlet . class ) . addMapping ( "*.jsp" ) . addMapping ( "*.jspx" ) . addInitParam ( "development" , "false" ) ; d . addServlet ( jspServlet ) ; final Set < String > jspPropertyGroupMappings = propertyGroups . keySet ( ) ; for ( final String mapping : jspPropertyGroupMappings ) { jspServlet . addMapping ( mapping ) ; } d . setClassIntrospecter ( new UndertowDeploymentProcessor . ComponentClassIntrospector ( componentRegistry ) ) ; final Map < String , List < ServletMappingMetaData > > servletMappings = new HashMap < > ( ) ; if ( ( mergedMetaData . getServletMappings ( ) ) != null ) { for ( final ServletMappingMetaData mapping : mergedMetaData . getServletMappings ( ) ) { List < ServletMappingMetaData > list = servletMappings . get ( mapping . getServletName ( ) ) ; if ( list == null ) { servletMappings . put ( mapping . getServletName ( ) , ( list = new ArrayList ( ) ) ) ; } list . add ( mapping ) ; } } final Set < String > seenMappings = new HashSet < > ( jspPropertyGroupMappings ) ; if ( ( mergedMetaData . getServlets ( ) ) != null ) { for ( final JBossServletMetaData servlet : mergedMetaData . getServlets ( ) ) { final ServletInfo s ; if ( ( servlet . getJspFile ( ) ) != null ) { s = new ServletInfo ( servlet . getName ( ) , JspServlet . class ) ; s . addHandlerChainWrapper ( new io . undertow . jsp . JspFileWrapper ( servlet . getJspFile ( ) ) ) ; } else { Class < ? extends Servlet > servletClass = ( ( Class < ? extends Servlet > ) ( classReflectionIndex . classIndex ( servlet . getServletClass ( ) ) . getModuleClass ( ) ) ) ; ComponentRegistry . ComponentManagedReferenceFactory creator = componentRegistry . getComponentsByClass ( ) . get ( servletClass ) ; if ( creator != null ) { InstanceFactory < Servlet > factory = createInstanceFactory ( creator ) ; s = new ServletInfo ( servlet . getName ( ) , servletClass , factory ) ; } else { s = new ServletInfo ( servlet . getName ( ) , servletClass ) ; } } s . setAsyncSupported ( servlet . isAsyncSupported ( ) ) . setJspFile ( servlet . getJspFile ( ) ) . setEnabled ( servlet . isEnabled ( ) ) ; if ( ( servlet . getRunAs ( ) ) != null ) { s . setRunAs ( servlet . getRunAs ( ) . getRoleName ( ) ) ; } if ( servlet . getLoadOnStartupSet ( ) ) { s . setLoadOnStartup ( servlet . getLoadOnStartupInt ( ) ) ; } List < ServletMappingMetaData > mappings = servletMappings . get ( servlet . getName ( ) ) ;

Fix:
d . setMinorVersion ( 1 ) ;