Buggy code:
final InterceptorClassDescription interceptorConfig ; if ( ( classDescription != null ) && ( ! metadataComplete ) ) { interceptorConfig = InterceptorClassDescription . merge ( classDescription . getInterceptorClassDescription ( ) , moduleDescription . getInterceptorClassOverride ( clazz . getName ( ) ) ) ; } else { interceptorConfig = InterceptorClassDescription . merge ( null , moduleDescription . getInterceptorClassOverride ( clazz . getName ( ) ) ) ; } if ( interceptorHasLifecycleCallbacks ) { final MethodIdentifier postConstructMethodIdentifier = interceptorConfig . getPostConstruct ( ) ; handleInterceptorClass ( clazz , postConstructMethodIdentifier , userPostConstructByInterceptorClass , true , true ) ; final MethodIdentifier preDestroyMethodIdentifier = interceptorConfig . getPreDestroy ( ) ; handleInterceptorClass ( clazz , preDestroyMethodIdentifier , userPreDestroyByInterceptorClass , true , true ) ; } final MethodIdentifier aroundInvokeMethodIdentifier = interceptorConfig . getAroundInvoke ( ) ; handleInterceptorClass ( clazz , aroundInvokeMethodIdentifier , userAroundInvokesByInterceptorClass , false , false ) ; if ( description . isTimerServiceApplicable ( ) ) { final MethodIdentifier aroundTimeoutMethodIdentifier = interceptorConfig . getAroundTimeout ( ) ; handleInterceptorClass ( clazz , aroundTimeoutMethodIdentifier , userAroundTimeoutsByInterceptorClass , false , false ) ; } if ( description . isPassivationApplicable ( ) ) { handleInterceptorClass ( clazz , interceptorConfig . getPrePassivate ( ) , userPrePassivatesByInterceptorClass , false , false ) ; handleInterceptorClass ( clazz , interceptorConfig . getPostActivate ( ) , userPostActivatesByInterceptorClass , false , false ) ; } } private void handleInterceptorClass ( final Class < ? > clazz , final MethodIdentifier methodIdentifier , final Map < String , List < InterceptorFactory > > classMap , final boolean changeMethod , final boolean lifecycleMethod ) throws DeploymentUnitProcessingException { if ( methodIdentifier != null ) { final Method method = org . jboss . as . server . deployment . reflect . ClassReflectionIndexUtil . findRequiredMethod ( deploymentReflectionIndex , clazz , methodIdentifier ) ; if ( isNotOverriden ( clazz , method , interceptorClass . getModuleClass ( ) , deploymentReflectionIndex ) ) { final InterceptorFactory interceptorFactory = new ManagedReferenceLifecycleMethodInterceptorFactory ( contextKey , method , changeMethod , lifecycleMethod ) ; List < InterceptorFactory > factories = classMap . get ( interceptorClassName ) ; if ( factories == null ) { classMap . put ( interceptorClassName , ( factories = new ArrayList < InterceptorFactory > ( ) ) ) ; } factories . add ( interceptorFactory ) ; } } } } . run ( ) ; } final List < InterceptorFactory > userPostConstruct = new ArrayList < InterceptorFactory > ( ) ; final List < InterceptorFactory > userPreDestroy = new ArrayList < InterceptorFactory > ( ) ; final List < InterceptorFactory > userPrePassivate = new ArrayList < InterceptorFactory > ( ) ; final List < InterceptorFactory > userPostActivate = new ArrayList < InterceptorFactory > ( ) ; for ( final InterceptorDescription interceptorClass : interceptorWithLifecycleCallbacks ) { if ( userPostConstructByInterceptorClass . containsKey ( interceptorClass . getInterceptorClassName ( ) ) ) { userPostConstruct . addAll ( userPostConstructByInterceptorClass . get ( interceptorClass . getInterceptorClassName ( ) ) ) ; } if ( userPreDestroyByInterceptorClass . containsKey ( interceptorClass . getInterceptorClassName ( ) ) ) { userPreDestroy . addAll ( userPreDestroyByInterceptorClass . get ( interceptorClass . getInterceptorClassName ( ) ) ) ; } if ( description . isPassivationApplicable ( ) ) { if ( userPrePassivatesByInterceptorClass . containsKey ( interceptorClass . getInterceptorClassName ( ) ) ) { userPrePassivate . addAll ( userPrePassivatesByInterceptorClass . get ( interceptorClass . getInterceptorClassName ( ) ) ) ; } if ( userPostActivatesByInterceptorClass . containsKey ( interceptorClass . getInterceptorClassName ( ) ) ) { userPostActivate . addAll ( userPostActivatesByInterceptorClass . get ( interceptorClass . getInterceptorClassName ( ) ) ) ; } } } new ClassDescriptionTraversal ( configuration . getComponentClass ( ) , applicationClasses ) { @ Override public void handle ( final Class < ? > clazz , EEModuleClassDescription classDescription ) throws DeploymentUnitProcessingException { <START_BUG> final InterceptorClassDescription interceptorConfig = mergeInterceptorConfig ( clazz , classDescription , description , metadataComplete ) ; <END_BUG> handleClassMethod ( clazz , interceptorConfig . getPostConstruct ( ) , userPostConstruct , true , true ) ; handleClassMethod ( clazz , interceptorConfig . getPreDestroy ( ) , userPreDestroy , true , true ) ; handleClassMethod ( clazz , interceptorConfig . getAroundInvoke ( ) , componentUserAroundInvoke , false , false ) ; if ( description . isTimerServiceApplicable ( ) ) { handleClassMethod ( clazz , interceptorConfig . getAroundTimeout ( ) , componentUserAroundTimeout , false , false ) ; } if ( description . isPassivationApplicable ( ) ) { handleClassMethod ( clazz , interceptorConfig . getPrePassivate ( ) , userPrePassivate , false , false ) ; handleClassMethod ( clazz , interceptorConfig . getPostActivate ( ) , userPostActivate , false , false ) ; } } private void handleClassMethod ( final Class < ? > clazz , final MethodIdentifier methodIdentifier , final List < InterceptorFactory > interceptors , boolean changeMethod , boolean lifecycleMethod ) throws DeploymentUnitProcessingException { if ( methodIdentifier != null ) { final Method method = org . jboss . as . server . deployment . reflect . ClassReflectionIndexUtil . findRequiredMethod ( deploymentReflectionIndex , clazz , methodIdentifier ) ; if ( isNotOverriden ( clazz , method , componentClassIndex . getIndexedClass ( ) , deploymentReflectionIndex ) ) { InterceptorFactory interceptorFactory = new ManagedReferenceLifecycleMethodInterceptorFactory ( instanceKey , method , changeMethod , lifecycleMethod ) ; interceptors . add ( interceptorFactory ) ; } } } } . run ( ) ; final InterceptorFactory tcclInterceptor = new ImmediateInterceptorFactory ( new TCCLInterceptor ( module . getClassLoader ( ) ) ) ; if ( ! ( injectors . isEmpty ( ) ) ) { configuration . addPostConstructInterceptor ( ComponentDescription . weaved ( injectors ) , RESOURCE_INJECTION_INTERCEPTORS ) ; } if ( ! ( instantiators . isEmpty ( ) ) ) { configuration . addPostConstructInterceptor ( ComponentDescription . weaved ( instantiators ) , INSTANTIATION_INTERCEPTORS ) ; } if ( ! ( userPostConstruct . isEmpty ( ) ) ) { configuration . addPostConstructInterceptor ( ComponentDescription . weaved ( userPostConstruct ) , USER_INTERCEPTORS ) ;

Fix:
final InterceptorClassDescription interceptorConfig = InterceptorClassDescription . merge ( mergeInterceptorConfig ( clazz , classDescription , description , metadataComplete ) , moduleDescription . getInterceptorClassOverride ( clazz . getName ( ) ) ) ;