Buggy code:
public class EJBComponentCreateService extends BasicComponentCreateService { private final Map < MethodTransactionAttributeKey , TransactionAttributeType > txAttrs ; private final Map < MethodTransactionAttributeKey , Integer > txTimeouts ; private final TransactionManagementType transactionManagementType ; private final ApplicationExceptions applicationExceptions ; private final Map < String , ServiceName > viewServices ; private final EJBSecurityMetaData securityMetaData ; private final TimerService timerService ; private final Map < Method , InterceptorFactory > timeoutInterceptors ; private final Method timeoutMethod ; private final ServiceName ejbLocalHome ; private final ServiceName ejbHome ; private final ServiceName ejbObject ; private final ServiceName ejbLocalObject ; private final String applicationName ; private final String earApplicationName ; private final String moduleName ; private final String distinctName ; private final ShutDownInterceptorFactory shutDownInterceptorFactory ; private final InjectedValue < EJBRemoteTransactionsRepository > ejbRemoteTransactionsRepository = new InjectedValue < EJBRemoteTransactionsRepository > ( ) ; public EJBComponentCreateService ( final ComponentConfiguration componentConfiguration , final ApplicationExceptions applicationExceptions ) { } @ Override protected boolean requiresInterceptors ( final Method method , final ComponentConfiguration componentConfiguration ) { } private static Method getComponentMethod ( final ComponentConfiguration componentConfiguration , final String name , final Class < ? > [ ] parameterTypes ) { } protected EJBUtilities getEJBUtilities ( ) { } Map < MethodTransactionAttributeKey , TransactionAttributeType > getTxAttrs ( ) { } Map < MethodTransactionAttributeKey , Integer > getTxTimeouts ( ) { } TransactionManagementType getTransactionManagementType ( ) { } ApplicationExceptions getApplicationExceptions ( ) { } protected void processTxAttr ( final EJBComponentDescription ejbComponentDescription , final MethodIntf methodIntf , final Method method ) { } private static String [ ] toString ( Class < ? > [ ] a ) { final String [ ] result = new String [ a . length ] ; for ( int i = 0 ; i < ( result . length ) ; i ++ ) { <START_BUG> result [ i ] = a [ i ] . getName ( ) ; <END_BUG> } return result ; } public Map < String , ServiceName > getViewServices ( ) { } public EJBSecurityMetaData getSecurityMetaData ( ) { } public Map < Method , InterceptorFactory > getTimeoutInterceptors ( ) { } public TimerService getTimerService ( ) { } public Method getTimeoutMethod ( ) { } public ServiceName getEjbHome ( ) { } public ServiceName getEjbLocalHome ( ) { } public ServiceName getEjbObject ( ) { } public ServiceName getEjbLocalObject ( ) { } public String getApplicationName ( ) { } public String getEarApplicationName ( ) { } public String getDistinctName ( ) { } public String getModuleName ( ) { } public Injector < EJBRemoteTransactionsRepository > getEJBRemoteTransactionsRepositoryInjector ( ) { } public ShutDownInterceptorFactory getShutDownInterceptorFactory ( ) { } EJBRemoteTransactionsRepository getEJBRemoteTransactionsRepository ( ) { } }

Fix:
result [ i ] = a [ i ] . getCanonicalName ( ) ;