Buggy code:
private final Map < MethodIdentifier , List < InterceptorDescription > > methodInterceptors = new HashMap < MethodIdentifier , List < InterceptorDescription > > ( ) ; private final Set < MethodIdentifier > methodExcludeDefaultInterceptors = new HashSet < MethodIdentifier > ( ) ; private final Set < MethodIdentifier > methodExcludeClassInterceptors = new HashSet < MethodIdentifier > ( ) ; private Set < InterceptorDescription > allInterceptors ; private boolean excludeDefaultInterceptors = false ; private final Map < ServiceName , ServiceBuilder . DependencyType > dependencies = new HashMap < ServiceName , ServiceBuilder . DependencyType > ( ) ; private ComponentNamingMode namingMode = ComponentNamingMode . USE_MODULE ; private DeploymentDescriptorEnvironment deploymentDescriptorEnvironment ; private final List < BindingConfiguration > bindingConfigurations = new ArrayList < BindingConfiguration > ( ) ; private final Map < String , Map < InjectionTarget , ResourceInjectionConfiguration > > resourceInjections = new HashMap < String , Map < InjectionTarget , ResourceInjectionConfiguration > > ( ) ; private final Deque < ComponentConfigurator > configurators = new ArrayDeque < ComponentConfigurator > ( ) ; private String beanDeploymentArchiveId ; public ComponentDescription ( final String componentName , final String componentClassName , final EEModuleDescription moduleDescription , final ServiceName deploymentUnitServiceName ) { } public ComponentConfiguration createConfiguration ( final ClassIndex classIndex ) { } public String getComponentName ( ) { } public void setContextServiceName ( final ServiceName contextServiceName ) { } public ServiceName getContextServiceName ( ) { } public ServiceName getServiceName ( ) { } public ServiceName getStartServiceName ( ) { } public ServiceName getCreateServiceName ( ) { } public String getComponentClassName ( ) { } public String getModuleName ( ) { } public String getApplicationName ( ) { } public List < InterceptorDescription > getClassInterceptors ( ) { } public void setClassInterceptors ( List < InterceptorDescription > classInterceptors ) { } public List < InterceptorDescription > getDefaultInterceptors ( ) { } public void setDefaultInterceptors ( final List < InterceptorDescription > defaultInterceptors ) { } public Set < InterceptorDescription > getAllInterceptors ( ) { } public boolean isExcludeDefaultInterceptors ( ) { } public void setExcludeDefaultInterceptors ( boolean excludeDefaultInterceptors ) { } public void excludeDefaultInterceptors ( MethodIdentifier method ) { } public boolean isExcludeDefaultInterceptors ( MethodIdentifier method ) { } public void excludeClassInterceptors ( MethodIdentifier method ) { } public boolean isExcludeClassInterceptors ( MethodIdentifier method ) { } public void addClassInterceptor ( InterceptorDescription description ) { } public InterceptorDescription getClassInterceptor ( String interceptorClassName ) { } public Map < MethodIdentifier , List < InterceptorDescription > > getMethodInterceptors ( ) { } public void addMethodInterceptor ( MethodIdentifier method , InterceptorDescription description ) { } public void setMethodInterceptors ( MethodIdentifier identifier , List < InterceptorDescription > interceptorDescriptions ) { } public void addInterceptorMethodOverride ( final String className , final InterceptorClassDescription override ) { } public ComponentNamingMode getNamingMode ( ) { } public void setNamingMode ( final ComponentNamingMode namingMode ) { } public EEModuleDescription getModuleDescription ( ) { } public void addDependency ( ServiceName serviceName , ServiceBuilder . DependencyType type ) { } public Map < ServiceName , ServiceBuilder . DependencyType > getDependencies ( ) { } public DeploymentDescriptorEnvironment getDeploymentDescriptorEnvironment ( ) { } public void setDeploymentDescriptorEnvironment ( DeploymentDescriptorEnvironment deploymentDescriptorEnvironment ) { } public List < BindingConfiguration > getBindingConfigurations ( ) { } public Set < ViewDescription > getViews ( ) { } public boolean isTimerServiceApplicable ( ) { } public Deque < ComponentConfigurator > getConfigurators ( ) { } private boolean isIntercepted ( ) { } private static InterceptorFactory weaved ( final Collection < InterceptorFactory > interceptorFactories ) { } private static class DefaultComponentConfigurator implements ComponentConfigurator { public void configure ( final DeploymentPhaseContext context , final ComponentDescription description , final ComponentConfiguration configuration ) throws DeploymentUnitProcessingException { } private void mergeInjectionsForClass ( final Class < ? > clazz , final EEModuleClassDescription classDescription , final EEModuleDescription moduleDescription , final ComponentDescription description , final ComponentConfiguration configuration , final DeploymentPhaseContext context , final Deque < InterceptorFactory > injectors , final Object instanceKey , final Deque < InterceptorFactory > uninjectors ) throws DeploymentUnitProcessingException { final Map < InjectionTarget , ResourceInjectionConfiguration > mergedInjections = new HashMap < InjectionTarget , ResourceInjectionConfiguration > ( ) ; if ( classDescription != null ) { mergedInjections . putAll ( classDescription . getInjectionConfigurations ( ) ) ; } mergedInjections . putAll ( moduleDescription . getResourceInjections ( clazz . getName ( ) ) ) ; mergedInjections . putAll ( description . getResourceInjections ( clazz . getName ( ) ) ) ; for ( final ResourceInjectionConfiguration injectionConfiguration : mergedInjections . values ( ) ) { final Object valueContextKey = new Object ( ) ; final InjectedValue < ManagedReferenceFactory > managedReferenceFactoryValue = new InjectedValue < ManagedReferenceFactory > ( ) ; configuration . getStartDependencies ( ) . add ( new ComponentDescription . InjectedConfigurator ( injectionConfiguration , configuration , context , managedReferenceFactoryValue ) ) ; <START_BUG> injectors . addFirst ( injectionConfiguration . getTarget ( ) . createInjectionInterceptorFactory ( instanceKey , valueContextKey , managedReferenceFactoryValue , context . getDeploymentUnit ( ) ) ) ; <END_BUG> uninjectors . addLast ( new ManagedReferenceReleaseInterceptorFactory ( valueContextKey ) ) ; } } private InterceptorClassDescription mergeInterceptorConfig ( final Class < ? > clazz , final EEModuleClassDescription classDescription , final ComponentDescription description ) { } private boolean isNotOverriden ( final Class < ? > clazz , final Method method , final ClassReflectionIndex < ? > componentClassIndex , final DeploymentReflectionIndex deploymentReflectionIndex ) throws DeploymentUnitProcessingException { } } static class InjectedConfigurator implements DependencyConfigurator < ComponentStartService > { private final ResourceInjectionConfiguration injectionConfiguration ; private final ComponentConfiguration configuration ; private final DeploymentPhaseContext context ; private final InjectedValue < ManagedReferenceFactory > managedReferenceFactoryValue ; InjectedConfigurator ( final ResourceInjectionConfiguration injectionConfiguration , final ComponentConfiguration configuration , final DeploymentPhaseContext context , final InjectedValue < ManagedReferenceFactory > managedReferenceFactoryValue ) { } public void configureDependency ( final ServiceBuilder < ? > serviceBuilder , ComponentStartService service ) throws DeploymentUnitProcessingException { } } public String getBeanDeploymentArchiveId ( ) { } public void setBeanDeploymentArchiveId ( final String beanDeploymentArchiveId ) { } public void addResourceInjection ( final ResourceInjectionConfiguration injection ) { } public Map < InjectionTarget , ResourceInjectionConfiguration > getResourceInjections ( final String className ) { } }

Fix:
injectors . addFirst ( injectionConfiguration . getTarget ( ) . createInjectionInterceptorFactory ( instanceKey , valueContextKey , managedReferenceFactoryValue , context . getDeploymentUnit ( ) , injectionConfiguration . isOptional ( ) ) ) ;