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 ) { } public static UnresolvedType fromBcel ( Type t ) { } static UnresolvedType [ ] fromBcel ( Type [ ] ts ) { } public ResolvedType resolve ( Type t ) { } protected ReferenceTypeDelegate resolveDelegate ( ReferenceType ty ) { } protected BcelObjectType makeBcelObjectType ( ReferenceType resolvedTypeX , JavaClass jc , boolean exposedToWeaver ) { } private JavaClass lookupJavaClass ( ClassPathManager classPath , String name ) { } public BcelObjectType addSourceObjectType ( JavaClass jc ) { BcelObjectType ret = null ; String signature = UnresolvedType . forName ( jc . getClassName ( ) ) . getSignature ( ) ; Object fromTheMap = typeMap . get ( signature ) ; if ( ( fromTheMap != null ) && ( ! ( fromTheMap instanceof ReferenceType ) ) ) { StringBuffer exceptionText = new StringBuffer ( ) ; exceptionText . append ( "Found<seq2seq4repair_space>invalid<seq2seq4repair_space>(not<seq2seq4repair_space>a<seq2seq4repair_space>ReferenceType)<seq2seq4repair_space>entry<seq2seq4repair_space>in<seq2seq4repair_space>the<seq2seq4repair_space>type<seq2seq4repair_space>map.<seq2seq4repair_space>" ) ; exceptionText . append ( ( ( ( ( ( ( "Signature=[" + signature ) + "]<seq2seq4repair_space>Found=[" ) + fromTheMap ) + "]<seq2seq4repair_space>Class=[" ) + ( fromTheMap . getClass ( ) ) ) + "]" ) ) ; throw new BCException ( exceptionText . toString ( ) ) ; } ReferenceType nameTypeX = ( ( ReferenceType ) ( fromTheMap ) ) ; if ( nameTypeX == null ) { <START_BUG> if ( jc . isGeneric ( ) ) { <END_BUG> nameTypeX = ReferenceType . fromTypeX ( UnresolvedType . forRawTypeName ( jc . getClassName ( ) ) , this ) ; ret = makeBcelObjectType ( nameTypeX , jc , true ) ; ReferenceType genericRefType = new ReferenceType ( UnresolvedType . forGenericTypeSignature ( signature , ret . getDeclaredGenericSignature ( ) ) , this ) ; nameTypeX . setDelegate ( ret ) ; genericRefType . setDelegate ( ret ) ; nameTypeX . setGenericType ( genericRefType ) ; typeMap . put ( signature , nameTypeX ) ; } else { nameTypeX = new ReferenceType ( signature , this ) ; ret = makeBcelObjectType ( nameTypeX , jc , true ) ; typeMap . put ( signature , nameTypeX ) ; } } else { ret = makeBcelObjectType ( nameTypeX , jc , true ) ; } return ret ; } 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 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:
if ( ( jc . isGeneric ( ) ) && ( isInJava5Mode ( ) ) ) {