Buggy code:
public abstract class World implements Dump . INode { private IMessageHandler messageHandler = IMessageHandler . SYSTEM_ERR ; private ICrossReferenceHandler xrefHandler = null ; private TypeVariableDeclaringElement typeVariableLookupScope ; protected World . TypeMap typeMap = new World . TypeMap ( this ) ; private World . AspectPrecedenceCalculator precedenceCalculator ; private CrosscuttingMembersSet crosscuttingMembersSet = new CrosscuttingMembersSet ( this ) ; private IHierarchy model = null ; private Lint lint = new Lint ( this ) ; private boolean XnoInline ; private boolean XlazyTjp ; private boolean XhasMember = false ; private boolean Xpinpoint = false ; private boolean behaveInJava5Way = false ; private String targetAspectjRuntimeLevel = Constants . RUNTIME_LEVEL_DEFAULT ; private boolean optionalJoinpoint_ArrayConstruction = false ; private List dumpState_cantFindTypeExceptions = null ; protected World ( ) { } public void accept ( Dump . IVisitor visitor ) { } public ResolvedType resolve ( UnresolvedType ty ) { } public ResolvedType resolve ( UnresolvedType ty , ISourceLocation isl ) { } public ResolvedType [ ] resolve ( UnresolvedType [ ] types ) { } public ResolvedType resolve ( UnresolvedType ty , boolean allowMissing ) { if ( ty instanceof ResolvedType ) { ResolvedType rty = ( ( ResolvedType ) ( ty ) ) ; rty = resolve ( rty ) ; return rty ; } if ( ty . isTypeVariableReference ( ) ) { return ty . resolve ( this ) ; } String signature = ty . getSignature ( ) ; ResolvedType ret = typeMap . get ( signature ) ; if ( ret != null ) { ret . world = this ; return ret ; } else if ( ( signature . equals ( "?" ) ) || ( signature . equals ( "*" ) ) ) { <START_BUG> ResolvedType something = new BoundedReferenceType ( "?" , this ) ; <END_BUG> typeMap . put ( "?" , something ) ; return something ; } if ( ty . isArray ( ) ) { ResolvedType componentType = resolve ( ty . getComponentType ( ) , allowMissing ) ; ret = new ResolvedType . Array ( signature , ( "[" + ( componentType . getErasureSignature ( ) ) ) , this , componentType ) ; } else { ret = resolveToReferenceType ( ty ) ; if ( ( ! allowMissing ) && ( ret . isMissing ( ) ) ) { ret = handleRequiredMissingTypeDuringResolution ( ty ) ; } } if ( ( ( typeMap . get ( signature ) ) == null ) && ( ! ( ret . isMissing ( ) ) ) ) { typeMap . put ( signature , ret ) ; } return ret ; } private ResolvedType handleRequiredMissingTypeDuringResolution ( UnresolvedType ty ) { } public ResolvedType resolve ( ResolvedType ty ) { } public ResolvedType resolve ( String name ) { } public ResolvedType resolve ( String name , boolean allowMissing ) { } private ResolvedType currentlyResolvingBaseType ; private final ResolvedType resolveToReferenceType ( UnresolvedType ty ) { } public ResolvedType resolveGenericTypeFor ( UnresolvedType anUnresolvedType , boolean allowMissing ) { } private ReferenceType makeGenericTypeFrom ( ReferenceTypeDelegate delegate , ReferenceType rawType ) { } private ReferenceType resolveGenericWildcardFor ( UnresolvedType aType ) { } protected abstract ReferenceTypeDelegate resolveDelegate ( ReferenceType ty ) { } public ResolvedType getCoreType ( UnresolvedType tx ) { } public ReferenceType lookupOrCreateName ( UnresolvedType ty ) { } public ReferenceType lookupBySignature ( String signature ) { } public ResolvedMember resolve ( Member member ) { } public abstract Advice createAdviceMunger ( AjAttribute . AdviceAttribute attribute , Pointcut pointcut , Member signature ) { } public final Advice createAdviceMunger ( AdviceKind kind , Pointcut p , Member signature , int extraParameterFlags , IHasSourceLocation loc ) { } public abstract ConcreteTypeMunger makeCflowStackFieldAdder ( ResolvedMember cflowField ) { } public abstract ConcreteTypeMunger makeCflowCounterFieldAdder ( ResolvedMember cflowField ) { } public abstract ConcreteTypeMunger makePerClauseAspect ( ResolvedType aspect , PerClause . Kind kind ) { } public abstract ConcreteTypeMunger concreteTypeMunger ( ResolvedTypeMunger munger , ResolvedType aspectType ) { } public int compareByPrecedence ( ResolvedType aspect1 , ResolvedType aspect2 ) { } public Integer getPrecedenceIfAny ( ResolvedType aspect1 , ResolvedType aspect2 ) { } public int compareByPrecedenceAndHierarchy ( ResolvedType aspect1 , ResolvedType aspect2 ) { } public IMessageHandler getMessageHandler ( ) { } public void setMessageHandler ( IMessageHandler messageHandler ) { } public void showMessage ( Kind kind , String message , ISourceLocation loc1 , ISourceLocation loc2 ) { } public void setCrossReferenceHandler ( ICrossReferenceHandler xrefHandler ) { } public ICrossReferenceHandler getCrossReferenceHandler ( ) { } public void setTypeVariableLookupScope ( TypeVariableDeclaringElement scope ) { } public TypeVariableDeclaringElement getTypeVariableLookupScope ( ) { } 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 boolean isHasMemberSupportEnabled ( ) { } public void setXHasMemberSupportEnabled ( boolean b ) { } public boolean isInPinpointMode ( ) { } public void setPinpointMode ( boolean b ) { } public void setBehaveInJava5Way ( boolean b ) { } public boolean isInJava5Mode ( ) { } public void setTargetAspectjRuntimeLevel ( String s ) { } public void setOptionalJoinpoints ( String jps ) { } public boolean isJoinpointArrayConstructionEnabled ( ) { } public String getTargetAspectjRuntimeLevel ( ) { } public boolean isTargettingAspectJRuntime12 ( ) { } protected static class TypeMap { private static boolean debug = false ; public static int DONT_USE_REFS = 0 ; public static int USE_WEAK_REFS = 1 ; public static int USE_SOFT_REFS = 2 ; public static int policy = World . TypeMap . USE_SOFT_REFS ;

Fix:
ResolvedType something = new BoundedReferenceType ( "?" , "Ljava//lang//Object" , this ) ;