Buggy code:
public class UndertowJSRWebSocketDeploymentProcessor implements DeploymentUnitProcessor { private static final DotName SERVER_ENDPOINT = DotName . createSimple ( ServerEndpoint . class . getName ( ) ) ; private static final DotName CLIENT_ENDPOINT = DotName . createSimple ( ClientEndpoint . class . getName ( ) ) ; private static final DotName SERVER_APPLICATION_CONFIG = DotName . createSimple ( ServerApplicationConfig . class . getName ( ) ) ; private static final DotName ENDPOINT = DotName . createSimple ( Endpoint . class . getName ( ) ) ; public static final String FILTER_NAME = "Undertow<seq2seq4repair_space>Web<seq2seq4repair_space>Socket<seq2seq4repair_space>Filter" ; @ Override public void deploy ( final DeploymentPhaseContext phaseContext ) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext . getDeploymentUnit ( ) ; final DeploymentClassIndex classIndex = deploymentUnit . getAttachment ( CLASS_INDEX ) ; final Module module = deploymentUnit . getAttachment ( MODULE ) ; if ( module == null ) { return ; } ClassLoader oldCl = Thread . currentThread ( ) . getContextClassLoader ( ) ; try { Thread . currentThread ( ) . setContextClassLoader ( module . getClassLoader ( ) ) ; WarMetaData metaData = deploymentUnit . getAttachment ( ATTACHMENT_KEY ) ; if ( metaData == null ) { return ; } final Set < Class < ? > > annotatedEndpoints = new HashSet < > ( ) ; final Set < Class < ? extends Endpoint > > endpoints = new HashSet < > ( ) ; final Set < Class < ? extends ServerApplicationConfig > > config = new HashSet < > ( ) ; final CompositeIndex index = deploymentUnit . getAttachment ( COMPOSITE_ANNOTATION_INDEX ) ; final List < AnnotationInstance > serverEndpoints = index . getAnnotations ( UndertowJSRWebSocketDeploymentProcessor . SERVER_ENDPOINT ) ; if ( serverEndpoints != null ) { for ( AnnotationInstance endpoint : serverEndpoints ) { if ( ( endpoint . target ( ) ) instanceof ClassInfo ) { ClassInfo clazz = ( ( ClassInfo ) ( endpoint . target ( ) ) ) ; try { Class < ? > moduleClass = classIndex . classIndex ( clazz . name ( ) . toString ( ) ) . getModuleClass ( ) ; if ( ! ( Modifier . isAbstract ( moduleClass . getModifiers ( ) ) ) ) { annotatedEndpoints . add ( moduleClass ) ; } } catch ( ClassNotFoundException e ) { ROOT_LOGGER . couldNotLoadWebSocketEndpoint ( clazz . name ( ) . toString ( ) , e ) ; } } } } final List < AnnotationInstance > clientEndpoints = index . getAnnotations ( UndertowJSRWebSocketDeploymentProcessor . CLIENT_ENDPOINT ) ; if ( clientEndpoints != null ) { for ( AnnotationInstance endpoint : clientEndpoints ) { if ( ( endpoint . target ( ) ) instanceof ClassInfo ) { ClassInfo clazz = ( ( ClassInfo ) ( endpoint . target ( ) ) ) ; try { Class < ? > moduleClass = classIndex . classIndex ( clazz . name ( ) . toString ( ) ) . getModuleClass ( ) ; if ( ! ( Modifier . isAbstract ( moduleClass . getModifiers ( ) ) ) ) { annotatedEndpoints . add ( moduleClass ) ; } } catch ( ClassNotFoundException e ) { ROOT_LOGGER . couldNotLoadWebSocketEndpoint ( clazz . name ( ) . toString ( ) , e ) ; } } } } <START_BUG> final Set < ClassInfo > subclasses = index . getAllKnownSubclasses ( UndertowJSRWebSocketDeploymentProcessor . SERVER_APPLICATION_CONFIG ) ; <END_BUG> if ( subclasses != null ) { for ( final ClassInfo clazz : subclasses ) { try { Class < ? > moduleClass = classIndex . classIndex ( clazz . name ( ) . toString ( ) ) . getModuleClass ( ) ; if ( ! ( Modifier . isAbstract ( moduleClass . getModifiers ( ) ) ) ) { config . add ( ( ( Class ) ( moduleClass ) ) ) ; } } catch ( ClassNotFoundException e ) { ROOT_LOGGER . couldNotLoadWebSocketConfig ( clazz . name ( ) . toString ( ) , e ) ; } } } final Set < ClassInfo > epClasses = index . getAllKnownSubclasses ( UndertowJSRWebSocketDeploymentProcessor . ENDPOINT ) ; if ( epClasses != null ) { for ( final ClassInfo clazz : epClasses ) { try { Class < ? > moduleClass = classIndex . classIndex ( clazz . name ( ) . toString ( ) ) . getModuleClass ( ) ; if ( ! ( Modifier . isAbstract ( moduleClass . getModifiers ( ) ) ) ) { endpoints . add ( ( ( Class ) ( moduleClass ) ) ) ; } } catch ( ClassNotFoundException e ) { ROOT_LOGGER . couldNotLoadWebSocketConfig ( clazz . name ( ) . toString ( ) , e ) ; } } } ServerWebSocketContainer container = new ServerWebSocketContainer ( DefaultClassIntrospector . INSTANCE ) ; doDeployment ( container , annotatedEndpoints , config , endpoints ) ; installWebsockets ( phaseContext , metaData , container ) ; } finally { Thread . currentThread ( ) . setContextClassLoader ( oldCl ) ; } } private void installWebsockets ( final DeploymentPhaseContext phaseContext , final WarMetaData metaData , final ServerWebSocketContainer container ) { } private void bindJndiServices ( final DeploymentUnit deploymentUnit , final ServiceTarget serviceTarget , final ServiceName contextServiceName , final ServiceName serviceName ) { } private void doDeployment ( final ServerWebSocketContainer container , final Set < Class < ? > > annotatedEndpoints , final Set < Class < ? extends ServerApplicationConfig > > serverApplicationConfigClasses , final Set < Class < ? extends Endpoint > > endpoints ) throws DeploymentUnitProcessingException { } @ Override public void undeploy ( final DeploymentUnit context ) { } }

Fix:
final Set < ClassInfo > subclasses = index . getAllKnownImplementors ( UndertowJSRWebSocketDeploymentProcessor . SERVER_APPLICATION_CONFIG ) ;