Buggy code:
public class StatefulComponentDescription extends SessionBeanComponentDescription { private static final Logger logger = Logger . getLogger ( StatefulComponentDescription . class ) ; private MethodDescription afterBegin ; private MethodDescription afterCompletion ; private MethodDescription beforeCompletion ; private Set < StatefulComponentDescription . StatefulRemoveMethod > removeMethods = new HashSet < StatefulComponentDescription . StatefulRemoveMethod > ( ) ; private StatefulTimeoutInfo statefulTimeout ; public class StatefulRemoveMethod { private final MethodIdentifier methodIdentifier ; private final boolean retainIfException ; StatefulRemoveMethod ( final MethodIdentifier method , final boolean retainIfException ) { } public MethodIdentifier getMethodIdentifier ( ) { } public boolean isRetainIfException ( ) { } @ Override public boolean equals ( Object o ) { } @ Override public int hashCode ( ) { } } public StatefulComponentDescription ( final String componentName , final String componentClassName , final EjbJarDescription ejbJarDescription , final ServiceName deploymentUnitServiceName ) { } private void addStatefulSessionSynchronizationInterceptor ( ) { } @ Override public ComponentConfiguration createConfiguration ( EEApplicationDescription applicationDescription ) { final ComponentConfiguration statefulComponentConfiguration = new ComponentConfiguration ( this , applicationDescription . getClassConfiguration ( getComponentClassName ( ) ) ) ; statefulComponentConfiguration . setComponentCreateServiceFactory ( new StatefulComponentCreateServiceFactory ( ) ) ; if ( ( getTransactionManagementType ( ) ) == ( TransactionManagementType . BEAN ) ) { getConfigurators ( ) . add ( new ComponentConfigurator ( ) { @ Override public void configure ( final DeploymentPhaseContext context , final ComponentDescription description , final ComponentConfiguration configuration ) throws DeploymentUnitProcessingException { final ComponentInstanceInterceptorFactory bmtComponentInterceptorFactory = new ComponentInstanceInterceptorFactory ( ) { @ Override protected Interceptor create ( Component component , InterceptorFactoryContext context ) { <START_BUG> if ( ( component instanceof StatefulSessionComponent ) == false ) { <END_BUG> throw new IllegalArgumentException ( ( ( ( ( "Component<seq2seq4repair_space>" + component ) + "<seq2seq4repair_space>with<seq2seq4repair_space>component<seq2seq4repair_space>class:<seq2seq4repair_space>" ) + ( component . getComponentClass ( ) ) ) + "<seq2seq4repair_space>isn't<seq2seq4repair_space>a<seq2seq4repair_space>stateful<seq2seq4repair_space>component" ) ) ; } return new StatefulBMTInterceptor ( ( ( StatefulSessionComponent ) ( component ) ) ) ; } } ; configuration . addComponentInterceptor ( bmtComponentInterceptorFactory , BMT_TRANSACTION_INTERCEPTOR , false ) ; } } ) ; } return statefulComponentConfiguration ; } @ Override public boolean allowsConcurrentAccess ( ) { } public MethodDescription getAfterBegin ( ) { } public MethodDescription getAfterCompletion ( ) { } public MethodDescription getBeforeCompletion ( ) { } @ Override public SessionBeanType getSessionBeanType ( ) { } public void setAfterBegin ( String className , String methodName ) { } public void setAfterCompletion ( String className , String methodName ) { } public void setBeforeCompletion ( String className , String methodName ) { } @ Override protected void setupViewInterceptors ( ViewDescription view ) { } public void addRemoveMethod ( final MethodIdentifier removeMethod , final boolean retainIfException ) { } public Set < StatefulComponentDescription . StatefulRemoveMethod > getRemoveMethods ( ) { } public StatefulTimeoutInfo getStatefulTimeout ( ) { } public void setStatefulTimeout ( final StatefulTimeoutInfo statefulTimeout ) { } private void addStatefulInstanceAssociatingInterceptor ( final ViewDescription view ) { } private void addRemoveMethodInterceptor ( final ViewDescription view ) { } }

Fix:
if ( ! ( component instanceof StatefulSessionComponent ) ) {