Buggy code:
public abstract class SessionBeanComponentDescription extends EJBComponentDescription { private static final Logger logger = Logger . getLogger ( SessionBeanComponentDescription . class ) ; private boolean noInterfaceViewPresent ; private ConcurrencyManagementType concurrencyManagementType ; private LockType beanLevelLockType ; private AccessTimeout beanLevelAccessTimeout ; private Map < EJBMethodDescription , LockType > methodLockTypes = new ConcurrentHashMap < EJBMethodDescription , LockType > ( ) ; private Map < EJBMethodDescription , AccessTimeout > methodAccessTimeouts = new ConcurrentHashMap < EJBMethodDescription , AccessTimeout > ( ) ; private final Set < MethodIdentifier > asynchronousMethods = new HashSet < MethodIdentifier > ( ) ; private final Set < String > asynchronousViews = new HashSet < String > ( ) ; private String mappedName ; public enum SessionBeanType { STATELESS , STATEFUL , SINGLETON ; } public SessionBeanComponentDescription ( final String componentName , final String componentClassName , final EjbJarDescription ejbJarDescription , final ServiceName deploymentUnitServiceName ) { } public abstract boolean allowsConcurrentAccess ( ) { } public void addLocalBusinessInterfaceViews ( final Collection < String > classNames ) { } public void addLocalBusinessInterfaceViews ( final String ... classNames ) { } public void addNoInterfaceView ( ) { } public EJBViewDescription addWebserviceEndpointView ( ) { } public void addRemoteBusinessInterfaceViews ( final Collection < String > classNames ) { } private void assertNoRemoteView ( final String viewClassName ) { } private void assertNoLocalView ( final String viewClassName ) { } private EJBViewDescription registerView ( final String viewClassName , final MethodIntf viewType ) { } public boolean hasNoInterfaceView ( ) { } public void setBeanLevelLockType ( LockType locktype ) { } public LockType getBeanLevelLockType ( ) { } public void setLockType ( LockType lockType , EJBMethodDescription method ) { } public Map < EJBMethodDescription , LockType > getMethodApplicableLockTypes ( ) { } public AccessTimeout getBeanLevelAccessTimeout ( ) { } public void setBeanLevelAccessTimeout ( AccessTimeout accessTimeout ) { } public void setAccessTimeout ( AccessTimeout accessTimeout , EJBMethodDescription method ) { } public Map < EJBMethodDescription , AccessTimeout > getMethodApplicableAccessTimeouts ( ) { } public ConcurrencyManagementType getConcurrencyManagementType ( ) { } public void beanManagedConcurrency ( ) { } public void containerManagedConcurrency ( ) { } public String getMappedName ( ) { } public void setMappedName ( String mappedName ) { } public void addAsynchronousMethod ( final MethodIdentifier methodIdentifier ) { } public void addAsynchronousView ( final String viewName ) { } public abstract SessionBeanComponentDescription . SessionBeanType getSessionBeanType ( ) { } @ Override protected void setupViewInterceptors ( ViewDescription view ) { } protected static void addTxManagementInterceptorForView ( ViewDescription view ) { view . getConfigurators ( ) . add ( new ViewConfigurator ( ) { @ Override public void configure ( DeploymentPhaseContext context , ComponentConfiguration componentConfiguration , ViewDescription description , ViewConfiguration configuration ) throws DeploymentUnitProcessingException { EJBComponentDescription ejbComponentDescription = ( ( EJBComponentDescription ) ( componentConfiguration . getComponentDescription ( ) ) ) ; if ( CONTAINER . equals ( ejbComponentDescription . getTransactionManagementType ( ) ) ) { <START_BUG> configuration . addViewInterceptor ( INSTANCE , TRANSACTION_INTERCEPTOR ) ; <END_BUG> } } } ) ; } @ Override protected void addCurrentInvocationContextFactory ( ) { } @ Override protected void addCurrentInvocationContextFactory ( ViewDescription view ) { } @ Override public boolean isSingleton ( ) { } @ Override public boolean isStateful ( ) { } @ Override public boolean isStateless ( ) { } }

Fix:
configuration . addViewInterceptor ( INSTANCE , CMT_TRANSACTION_INTERCEPTOR ) ;