Buggy code:
public class DeploymentDescriptorInterceptorBindingsProcessor implements DeploymentUnitProcessor { @ Override public void deploy ( final DeploymentPhaseContext phaseContext ) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext . getDeploymentUnit ( ) ; final EjbJarMetaData metaData = deploymentUnit . getAttachment ( EJB_JAR_METADATA ) ; final EEModuleDescription eeModuleDescription = deploymentUnit . getAttachment ( EE_MODULE_DESCRIPTION ) ; final Module module = deploymentUnit . getAttachment ( MODULE ) ; final DeploymentReflectionIndex index = deploymentUnit . getAttachment ( REFLECTION_INDEX ) ; if ( metaData == null ) { return ; } if ( ( metaData . getAssemblyDescriptor ( ) ) == null ) { return ; } if ( ( metaData . getAssemblyDescriptor ( ) . getInterceptorBindings ( ) ) == null ) { return ; } final Set < String > interceptorClasses = new HashSet < String > ( ) ; if ( ( metaData . getInterceptors ( ) ) != null ) { for ( final InterceptorMetaData interceptor : metaData . getInterceptors ( ) ) { interceptorClasses . add ( interceptor . getInterceptorClass ( ) ) ; } } final Map < String , List < InterceptorBindingMetaData > > bindingsPerComponent = new HashMap < String , List < InterceptorBindingMetaData > > ( ) ; final List < InterceptorBindingMetaData > defaultInterceptorBindings = new ArrayList < InterceptorBindingMetaData > ( ) ; for ( final InterceptorBindingMetaData binding : metaData . getAssemblyDescriptor ( ) . getInterceptorBindings ( ) ) { if ( binding . getEjbName ( ) . equals ( "*" ) ) { if ( ( binding . getMethod ( ) ) != null ) { throw EjbMessages . MESSAGES . defaultInterceptorsNotBindToMethod ( ) ; } if ( ( binding . getInterceptorOrder ( ) ) != null ) { throw EjbMessages . MESSAGES . defaultInterceptorsNotSpecifyOrder ( ) ; } defaultInterceptorBindings . add ( binding ) ; } else { List < InterceptorBindingMetaData > bindings = bindingsPerComponent . get ( binding . getEjbName ( ) ) ; if ( bindings == null ) { bindingsPerComponent . put ( binding . getEjbName ( ) , ( bindings = new ArrayList < InterceptorBindingMetaData > ( ) ) ) ; } bindings . add ( binding ) ; } } final List < InterceptorDescription > defaultInterceptors = new ArrayList < InterceptorDescription > ( ) ; for ( InterceptorBindingMetaData binding : defaultInterceptorBindings ) { if ( ( binding . getInterceptorClasses ( ) ) != null ) { for ( final String clazz : binding . getInterceptorClasses ( ) ) { if ( interceptorClasses . contains ( clazz ) ) { defaultInterceptors . add ( new InterceptorDescription ( clazz ) ) ; } else { EjbLogger . ROOT_LOGGER . defaultInterceptorClassNotListed ( clazz ) ; } } } } for ( final ComponentDescription componentDescription : eeModuleDescription . getComponentDescriptions ( ) ) { final Class < ? > componentClass ; try { componentClass = module . getClassLoader ( ) . loadClass ( componentDescription . getComponentClassName ( ) ) ; } catch ( ClassNotFoundException e ) { <START_BUG> throw EjbMessages . MESSAGES . failToLoadComponentClass ( componentDescription . getComponentClassName ( ) ) ; <END_BUG> } final List < InterceptorBindingMetaData > bindings = bindingsPerComponent . get ( componentDescription . 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 ( bindings != null ) { for ( final InterceptorBindingMetaData binding : bindings ) { 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 ; break ; } }

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