Buggy code:
public class BcelWorld extends World implements Repository { private ClassPathManager classPath ; private Repository delegate ; public BcelWorld ( ) { } public BcelWorld ( String cp ) { } private static List makeDefaultClasspath ( String cp ) { } private static List getPathEntries ( String s ) { } public BcelWorld ( List classPath , IMessageHandler handler , ICrossReferenceHandler xrefHandler ) { } public BcelWorld ( ClassPathManager cpm , IMessageHandler handler , ICrossReferenceHandler xrefHandler ) { } public BcelWorld ( ClassLoader loader , IMessageHandler handler , ICrossReferenceHandler xrefHandler ) { } public void addPath ( String name ) { } public Advice shadowMunger ( String str , int extraFlag ) { } private String [ ] parseIds ( String str ) { } public static Type makeBcelType ( UnresolvedType type ) { } static Type [ ] makeBcelTypes ( UnresolvedType [ ] types ) { } static String [ ] makeBcelTypesAsClassNames ( UnresolvedType [ ] types ) { String [ ] ret = new String [ types . length ] ; for ( int i = 0 , len = types . length ; i < len ; i ++ ) { <START_BUG> ret [ i ] = types [ i ] . getClassName ( ) ; <END_BUG> } return ret ; } public static UnresolvedType fromBcel ( Type t ) { } static UnresolvedType [ ] fromBcel ( Type [ ] ts ) { } public ResolvedType resolve ( Type t ) { } public boolean fallbackToLoadingBcelDelegatesForAspects = true ; private int packageRestrictionsForFastDelegates = 0 ; private List packagePrefixRestrictionList = null ; public boolean isNotOnPackageRestrictedList ( String s ) { } protected ReferenceTypeDelegate resolveDelegate ( ReferenceType ty ) { } private ReferenceTypeDelegate buildAsmDelegate ( ReferenceType type , ClassPathManager . ClassFile t ) { } public BcelObjectType buildBcelDelegate ( ReferenceType resolvedTypeX , JavaClass jc , boolean exposedToWeaver ) { } private JavaClass lookupJavaClass ( ClassPathManager classPath , String name ) { } public BcelObjectType addSourceObjectType ( JavaClass jc ) { } void deleteSourceObjectType ( UnresolvedType ty ) { } public static Member makeFieldJoinPointSignature ( LazyClassGen cg , FieldInstruction fi ) { } public Member makeJoinPointSignature ( LazyMethodGen mg ) { } public Member makeJoinPointSignatureFromMethod ( LazyMethodGen mg , MemberImpl . Kind kind ) { } public Member makeJoinPointSignatureForMonitorEnter ( LazyClassGen cg , InstructionHandle h ) { } public Member makeJoinPointSignatureForMonitorExit ( LazyClassGen cg , InstructionHandle h ) { } public Member makeJoinPointSignatureForArrayConstruction ( LazyClassGen cg , InstructionHandle handle ) { } public Member makeJoinPointSignatureForMethodInvocation ( LazyClassGen cg , InvokeInstruction ii ) { } public static Member makeMungerMethodSignature ( JavaClass javaClass , Method method ) { } private static final String [ ] ZERO_STRINGS = new String [ 0 ] ; public String toString ( ) { } public Advice createAdviceMunger ( AjAttribute . AdviceAttribute attribute , Pointcut pointcut , Member signature ) { } public ConcreteTypeMunger concreteTypeMunger ( ResolvedTypeMunger munger , ResolvedType aspectType ) { } public ConcreteTypeMunger makeCflowStackFieldAdder ( ResolvedMember cflowField ) { } public ConcreteTypeMunger makeCflowCounterFieldAdder ( ResolvedMember cflowField ) { } public ConcreteTypeMunger makePerClauseAspect ( ResolvedType aspect , PerClause . Kind kind ) { } public static BcelObjectType getBcelObjectType ( ResolvedType concreteAspect ) { } public void tidyUp ( ) { } public JavaClass findClass ( String className ) { } public JavaClass loadClass ( String className ) throws ClassNotFoundException { } public void storeClass ( JavaClass clazz ) { } public void removeClass ( JavaClass clazz ) { } public JavaClass loadClass ( Class clazz ) throws ClassNotFoundException { } public void clear ( ) { } public void validateType ( UnresolvedType type ) { } public boolean isAnnotationStyleAspect ( String name , byte [ ] bytes ) { } }

Fix:
ret [ i ] = types [ i ] . getName ( ) ;