Buggy code:
public abstract class World implements Dump . INode { protected IMessageHandler messageHandler = IMessageHandler . SYSTEM_ERR ; protected ICrossReferenceHandler xrefHandler = null ; protected World . TypeMap typeMap = new World . TypeMap ( ) ; protected CrosscuttingMembersSet crosscuttingMembersSet = new CrosscuttingMembersSet ( this ) ; protected IHierarchy model = null ; protected Lint lint = new Lint ( this ) ; protected boolean XnoInline ; protected boolean XlazyTjp ; public boolean behaveInJava5Way = false ; private List dumpState_cantFindTypeExceptions = null ; protected World ( ) { } public void accept ( Dump . IVisitor visitor ) { } public ResolvedTypeX [ ] resolve ( TypeX [ ] types ) { } public ResolvedTypeX resolve ( TypeX ty , ISourceLocation isl ) { } public ResolvedTypeX resolve ( TypeX ty ) { } public ResolvedTypeX getCoreType ( TypeX tx ) { } public ResolvedTypeX resolve ( TypeX ty , boolean allowMissing ) { String signature = ty . getSignature ( ) ; ResolvedTypeX ret = typeMap . get ( signature ) ; if ( ret != null ) { ret . world = this ; return ret ; } if ( ty . isArray ( ) ) { ret = new ResolvedTypeX . Array ( signature , this , resolve ( ty . getComponentType ( ) , allowMissing ) ) ; } else { ret = resolveObjectType ( ty ) ; if ( ( ! allowMissing ) && ( ret == ( ResolvedTypeX . MISSING ) ) ) { MessageUtil . error ( messageHandler , WeaverMessages . format ( CANT_FIND_TYPE , ty . getName ( ) ) ) ; if ( ( dumpState_cantFindTypeExceptions ) == null ) { dumpState_cantFindTypeExceptions = new ArrayList ( ) ; } dumpState_cantFindTypeExceptions . add ( new RuntimeException ( ( "Can't<seq2seq4repair_space>find<seq2seq4repair_space>type<seq2seq4repair_space>" + ( ty . getName ( ) ) ) ) ) ; } } <START_BUG> if ( ty . isParameterized ( ) ) { <END_BUG> for ( int i = 0 ; i < ( ty . typeParameters . length ) ; i ++ ) { ty . typeParameters [ i ] = resolve ( ty . typeParameters [ i ] , allowMissing ) ; } } typeMap . put ( signature , ret ) ; return ret ; } public ResolvedTypeX resolve ( String name ) { } protected final ResolvedTypeX resolveObjectType ( TypeX ty ) { } protected abstract ConcreteName resolveObjectType ( ResolvedTypeX . Name ty ) { } protected final boolean isCoerceableFrom ( TypeX type , TypeX other ) { } protected final boolean isAssignableFrom ( TypeX type , TypeX other ) { } public boolean needsNoConversionFrom ( TypeX type , TypeX other ) { } protected final boolean isInterface ( TypeX type ) { } protected final ResolvedTypeX getSuperclass ( TypeX type ) { } protected final TypeX [ ] getDeclaredInterfaces ( TypeX type ) { } protected final int getModifiers ( TypeX type ) { } protected final ResolvedMember [ ] getDeclaredFields ( TypeX type ) { } protected final ResolvedMember [ ] getDeclaredMethods ( TypeX type ) { } protected final ResolvedMember [ ] getDeclaredPointcuts ( TypeX type ) { } public ResolvedMember resolve ( Member member ) { } protected int getModifiers ( Member member ) { } protected String [ ] getParameterNames ( Member member ) { } protected TypeX [ ] getExceptions ( Member member ) { } public ResolvedPointcutDefinition findPointcut ( TypeX typeX , String name ) { } public abstract Advice concreteAdvice ( AjAttribute . AdviceAttribute attribute , Pointcut pointcut , Member signature ) { } public final Advice concreteAdvice ( AdviceKind kind , Pointcut p , Member signature , int extraParameterFlags , IHasSourceLocation loc ) { } public ConcreteTypeMunger makeCflowStackFieldAdder ( ResolvedMember cflowField ) { } public ConcreteTypeMunger makeCflowCounterFieldAdder ( ResolvedMember cflowField ) { } public ConcreteTypeMunger makePerClauseAspect ( ResolvedTypeX aspect , PerClause . Kind kind ) { } public abstract ConcreteTypeMunger concreteTypeMunger ( ResolvedTypeMunger munger , ResolvedTypeX aspectType ) { } public IMessageHandler getMessageHandler ( ) { } public void setMessageHandler ( IMessageHandler messageHandler ) { } public void setXRefHandler ( ICrossReferenceHandler xrefHandler ) { } public void showMessage ( Kind kind , String message , ISourceLocation loc1 , ISourceLocation loc2 ) { } public int compareByDominates ( ResolvedTypeX aspect1 , ResolvedTypeX aspect2 ) { } public int comparePrecedence ( ResolvedTypeX aspect1 , ResolvedTypeX aspect2 ) { } public List getDeclareParents ( ) { } public List getDeclareAnnotationOnTypes ( ) { } public List getDeclareAnnotationOnFields ( ) { } public List getDeclareAnnotationOnMethods ( ) { } public List getDeclareSoft ( ) { } public CrosscuttingMembersSet getCrosscuttingMembersSet ( ) { } public IHierarchy getModel ( ) { } public void setModel ( IHierarchy model ) { } public Lint getLint ( ) { } public void setLint ( Lint lint ) { } public boolean isXnoInline ( ) { } public void setXnoInline ( boolean xnoInline ) { } public boolean isXlazyTjp ( ) { } public void setXlazyTjp ( boolean b ) { } public Name lookupOrCreateName ( TypeX ty ) { } protected static class TypeMap { private Map tMap = new HashMap ( ) ; private Map expendableMap = new WeakHashMap ( ) ; public ResolvedTypeX put ( String key , ResolvedTypeX type ) { } public ResolvedTypeX get ( String key ) { } public ResolvedTypeX remove ( String key ) { } private boolean isExpendable ( ResolvedTypeX type ) { } } public void setBehaveInJava5Way ( boolean b ) { } }

Fix:
if ( ( ty . isParameterized ( ) ) && ( ! ( ty . isRawType ( ) ) ) ) {