Buggy code:
public abstract class SessionBeanComponentDescription extends EJBComponentDescription { private boolean noInterfaceViewPresent ; private ConcurrencyManagementType concurrencyManagementType ; private final Map < String , LockType > beanLevelLockType = new HashMap < String , LockType > ( ) ; private final Map < String , AccessTimeoutDetails > beanLevelAccessTimeout = new HashMap < String , AccessTimeoutDetails > ( ) ; private final Map < MethodIdentifier , LockType > methodLockTypes = new HashMap < MethodIdentifier , LockType > ( ) ; private final Map < MethodIdentifier , AccessTimeoutDetails > methodAccessTimeouts = new HashMap < MethodIdentifier , AccessTimeoutDetails > ( ) ; private final Set < MethodIdentifier > asynchronousMethods = new HashSet < MethodIdentifier > ( ) ; private final Set < String > asynchronousClasses = new HashSet < String > ( ) ; private String mappedName ; private ClusteringInfo clusteringInfo ; public enum SessionBeanType { STATELESS , STATEFUL , SINGLETON ; } public SessionBeanComponentDescription ( final String componentName , final String componentClassName , final EjbJarDescription ejbJarDescription , final ServiceName deploymentUnitServiceName , final SessionBeanMetaData descriptorData ) { } public abstract boolean allowsConcurrentAccess ( ) { } public void addLocalBusinessInterfaceViews ( final Collection < String > classNames ) { } public void addLocalBusinessInterfaceViews ( final String ... classNames ) { } public void addNoInterfaceView ( ) { } public EJBViewDescription addWebserviceEndpointView ( ) { } public EJBViewDescription addWebserviceEndpointView ( final String wsEndpointViewName ) { } public void addRemoteBusinessInterfaceViews ( final Collection < String > classNames ) { } private void assertNoRemoteView ( final String viewClassName ) { } private void assertNoLocalView ( final String viewClassName ) { } public boolean hasNoInterfaceView ( ) { } public void setBeanLevelLockType ( String className , LockType locktype ) { } public Map < String , LockType > getBeanLevelLockType ( ) { } public void setLockType ( LockType lockType , MethodIdentifier method ) { } public Map < MethodIdentifier , LockType > getMethodApplicableLockTypes ( ) { } public Map < String , AccessTimeoutDetails > getBeanLevelAccessTimeout ( ) { } public void setBeanLevelAccessTimeout ( String className , AccessTimeoutDetails accessTimeout ) { } public void setAccessTimeout ( AccessTimeoutDetails accessTimeout , MethodIdentifier method ) { } public Map < MethodIdentifier , AccessTimeoutDetails > getMethodApplicableAccessTimeouts ( ) { } public ConcurrencyManagementType getConcurrencyManagementType ( ) { } public void setConcurrencyManagementType ( final ConcurrencyManagementType concurrencyManagementType ) { } public String getMappedName ( ) { } public void setMappedName ( String mappedName ) { } public void addAsynchronousMethod ( final MethodIdentifier methodIdentifier ) { } public Set < MethodIdentifier > getAsynchronousMethods ( ) { } public void addAsynchronousClass ( final String viewName ) { } public Set < String > getAsynchronousClasses ( ) { } public abstract SessionBeanComponentDescription . SessionBeanType getSessionBeanType ( ) { } @ Override protected void setupViewInterceptors ( EJBViewDescription view ) { } protected abstract ViewConfigurator getSessionBeanObjectViewConfigurator ( ) { } protected static void addTxManagementInterceptorForView ( ViewDescription view ) { } @ Override protected void addCurrentInvocationContextFactory ( ) { this . getConfigurators ( ) . add ( new ComponentConfigurator ( ) { @ Override public void configure ( DeploymentPhaseContext context , ComponentDescription description , ComponentConfiguration configuration ) throws DeploymentUnitProcessingException { configuration . addPostConstructInterceptor ( FACTORY , EJB_SESSION_CONTEXT_INTERCEPTOR ) ; configuration . addPreDestroyInterceptor ( FACTORY , InterceptorOrder . ComponentPreDestroy . EJB_SESSION_CONTEXT_INTERCEPTOR ) ; if ( description . isPassivationApplicable ( ) ) { configuration . addPrePassivateInterceptor ( FACTORY , InterceptorOrder . ComponentPassivation . EJB_SESSION_CONTEXT_INTERCEPTOR ) ; configuration . addPostActivateInterceptor ( FACTORY , InterceptorOrder . ComponentPassivation . EJB_SESSION_CONTEXT_INTERCEPTOR ) ; } <START_BUG> configuration . getAllChainedContextHandleFactory ( ) . add ( INSTANCE ) ; <END_BUG> } } ) ; } @ Override protected void addCurrentInvocationContextFactory ( ViewDescription view ) { } @ Override public boolean isSession ( ) { } @ Override public boolean isSingleton ( ) { } @ Override public boolean isStateful ( ) { } @ Override public boolean isStateless ( ) { } @ Override public SessionBeanMetaData getDescriptorData ( ) { } public ClusteringInfo getClustering ( ) { } public void setClustering ( ClusteringInfo info ) { } }

Fix:
configuration . getConcurrentContext ( ) . addFactory ( INSTANCE ) ;