Buggy code:
public class ContainerInterceptorBindingsDDProcessor implements DeploymentUnitProcessor { private static final Logger logger = Logger . getLogger ( ContainerInterceptorBindingsDDProcessor . class ) ; @ Override public void deploy ( final DeploymentPhaseContext phaseContext ) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext . getDeploymentUnit ( ) ; final EjbJarMetaData metaData = deploymentUnit . getAttachment ( EJB_JAR_METADATA ) ; if ( ( metaData == null ) || ( ( metaData . getAssemblyDescriptor ( ) ) == null ) ) { return ; } final EEModuleDescription eeModuleDescription = deploymentUnit . getAttachment ( EE_MODULE_DESCRIPTION ) ; final Module module = deploymentUnit . getAttachment ( MODULE ) ; final DeploymentReflectionIndex index = deploymentUnit . getAttachment ( REFLECTION_INDEX ) ; final List < ContainerInterceptorsMetaData > containerInterceptorConfigurations = metaData . getAssemblyDescriptor ( ) . getAny ( ContainerInterceptorsMetaData . class ) ; if ( ( containerInterceptorConfigurations == null ) || ( containerInterceptorConfigurations . isEmpty ( ) ) ) { return ; } final ContainerInterceptorsMetaData containerInterceptorsMetaData = containerInterceptorConfigurations . get ( 0 ) ; if ( containerInterceptorsMetaData == null ) { return ; } final InterceptorBindingsMetaData containerInterceptorBindings = containerInterceptorsMetaData . getInterceptorBindings ( ) ; if ( ( containerInterceptorBindings == null ) || ( containerInterceptorBindings . isEmpty ( ) ) ) { return ; } final Map < String , List < InterceptorBindingMetaData > > bindingsPerEJB = new HashMap < String , List < InterceptorBindingMetaData > > ( ) ; final List < InterceptorBindingMetaData > bindingsForAllEJBs = new ArrayList < InterceptorBindingMetaData > ( ) ; for ( final InterceptorBindingMetaData containerInterceptorBinding : containerInterceptorBindings ) { if ( containerInterceptorBinding . getEjbName ( ) . equals ( "*" ) ) { if ( ( containerInterceptorBinding . getMethod ( ) ) != null ) { throw EjbMessages . MESSAGES . defaultInterceptorsNotBindToMethod ( ) ; } if ( ( containerInterceptorBinding . getInterceptorOrder ( ) ) != null ) { throw EjbMessages . MESSAGES . defaultInterceptorsNotSpecifyOrder ( ) ; } bindingsForAllEJBs . add ( containerInterceptorBinding ) ; } else { List < InterceptorBindingMetaData > bindings = bindingsPerEJB . get ( containerInterceptorBinding . getEjbName ( ) ) ; if ( bindings == null ) { bindings = new ArrayList < InterceptorBindingMetaData > ( ) ; bindingsPerEJB . put ( containerInterceptorBinding . getEjbName ( ) , bindings ) ; } bindings . add ( containerInterceptorBinding ) ; } } final List < InterceptorDescription > interceptorDescriptionsForAllEJBs = new ArrayList < InterceptorDescription > ( ) ; for ( InterceptorBindingMetaData binding : bindingsForAllEJBs ) { if ( ( binding . getInterceptorClasses ( ) ) != null ) { for ( final String clazz : binding . getInterceptorClasses ( ) ) { interceptorDescriptionsForAllEJBs . add ( new InterceptorDescription ( clazz ) ) ; } } } for ( final ComponentDescription componentDescription : eeModuleDescription . getComponentDescriptions ( ) ) { if ( ! ( componentDescription instanceof EJBComponentDescription ) ) { continue ; } final EJBComponentDescription ejbComponentDescription = ( ( EJBComponentDescription ) ( componentDescription ) ) ; final Class < ? > componentClass ; try { componentClass = module . getClassLoader ( ) . loadClass ( ejbComponentDescription . getComponentClassName ( ) ) ; } catch ( ClassNotFoundException e ) { <START_BUG> throw EjbMessages . MESSAGES . failToLoadComponentClass ( ejbComponentDescription . getComponentClassName ( ) ) ; <END_BUG> } final List < InterceptorBindingMetaData > bindingsApplicableForCurrentEJB = bindingsPerEJB . get ( ejbComponentDescription . getComponentName ( ) ) ; final Map < Method , List < InterceptorBindingMetaData > > methodInterceptors = new HashMap < Method , List < InterceptorBindingMetaData > > ( ) ; final List < InterceptorBindingMetaData > classLevelBindings = new ArrayList < InterceptorBindingMetaData > ( ) ; boolean classLevelExcludeDefaultInterceptors = false ; Map < Method , Boolean > methodLevelExcludeDefaultInterceptors = new HashMap < Method , Boolean > ( ) ; Map < Method , Boolean > methodLevelExcludeClassInterceptors = new HashMap < Method , Boolean > ( ) ; boolean classLevelAbsoluteOrder = false ; final Map < Method , Boolean > methodLevelAbsoluteOrder = new HashMap < Method , Boolean > ( ) ; if ( bindingsApplicableForCurrentEJB != null ) { for ( final InterceptorBindingMetaData binding : bindingsApplicableForCurrentEJB ) { if ( ( binding . getMethod ( ) ) == null ) { classLevelBindings . add ( binding ) ; if ( binding . isExcludeDefaultInterceptors ( ) ) { classLevelExcludeDefaultInterceptors = true ; } if ( binding . isTotalOrdering ( ) ) { if ( classLevelAbsoluteOrder ) { throw EjbMessages . MESSAGES . twoEjbBindingsSpecifyAbsoluteOrder ( componentClass . toString ( ) ) ; } else { classLevelAbsoluteOrder = true ; } } } else { final NamedMethodMetaData methodData = binding . getMethod ( ) ; final ClassReflectionIndex < ? > classIndex = index . getClassIndex ( componentClass ) ; Method resolvedMethod = null ; if ( ( methodData . getMethodParams ( ) ) == null ) { final Collection < Method > methods = classIndex . getAllMethods ( methodData . getMethodName ( ) ) ; if ( methods . isEmpty ( ) ) { throw EjbMessages . MESSAGES . failToFindMethodInEjbJarXml ( componentClass . getName ( ) , methodData . getMethodName ( ) ) ; } else if ( ( methods . size ( ) ) > 1 ) { throw EjbMessages . MESSAGES . multipleMethodReferencedInEjbJarXml ( methodData . getMethodName ( ) , componentClass . getName ( ) ) ; } resolvedMethod = methods . iterator ( ) . next ( ) ; } else { final Collection < Method > methods = classIndex . getAllMethods ( methodData . getMethodName ( ) , methodData . getMethodParams ( ) . size ( ) ) ; for ( final Method method : methods ) { boolean match = true ; for ( int i = 0 ; i < ( method . getParameterTypes ( ) . length ) ; ++ i ) { if ( ! ( method . getParameterTypes ( ) [ i ] . getName ( ) . equals ( methodData . getMethodParams ( ) . get ( i ) ) ) ) { match = false ; break ; } } if ( match ) { resolvedMethod = method ;

Fix:
throw EjbMessages . MESSAGES . failToLoadComponentClass ( e , ejbComponentDescription . getComponentClassName ( ) ) ;