Buggy code:
private NamePattern [ ] namePatterns ; int ellipsisCount ; String [ ] importedPrefixes ; String [ ] knownMatches ; int dim ; TypePattern upperBound ; TypePattern [ ] additionalInterfaceBounds ; TypePattern lowerBound ; private boolean isGeneric = true ; WildTypePattern ( NamePattern [ ] namePatterns , boolean includeSubtypes , int dim , boolean isVarArgs , TypePatternList typeParams ) { } public WildTypePattern ( List names , boolean includeSubtypes , int dim ) { } public WildTypePattern ( List names , boolean includeSubtypes , int dim , int endPos ) { } public WildTypePattern ( List names , boolean includeSubtypes , int dim , int endPos , boolean isVarArg ) { } public WildTypePattern ( List names , boolean includeSubtypes , int dim , int endPos , boolean isVarArg , TypePatternList typeParams , TypePattern upperBound , TypePattern [ ] additionalInterfaceBounds , TypePattern lowerBound ) { } public WildTypePattern ( List names , boolean includeSubtypes , int dim , int endPos , boolean isVarArg , TypePatternList typeParams ) { } public NamePattern [ ] getNamePatterns ( ) { } public TypePattern getUpperBound ( ) { } public TypePattern getLowerBound ( ) { } public TypePattern [ ] getAdditionalIntefaceBounds ( ) { } public void setIsVarArgs ( boolean isVarArgs ) { } protected boolean couldEverMatchSameTypesAs ( TypePattern other ) { } public static char [ ] [ ] splitNames ( String s ) { } protected boolean matchesExactly ( ResolvedType type ) { } protected boolean matchesExactly ( ResolvedType type , ResolvedType annotatedType ) { } private boolean matchesParameters ( ResolvedType aType , MatchKind staticOrDynamic ) { } private boolean matchesBounds ( ResolvedType aType , MatchKind staticOrDynamic ) { } public int getDimensions ( ) { } public boolean isArray ( ) { } private boolean matchesExactlyByName ( String targetTypeName ) { } private int lastIndexOfDotOrDollar ( String string ) { } private boolean innerMatchesExactly ( String targetTypeName ) { } private boolean innerMatchesExactly ( char [ ] [ ] names ) { } private static boolean outOfStar ( final NamePattern [ ] pattern , final char [ ] [ ] target , int pi , int ti , int pLeft , int tLeft , final int starsLeft ) { } private static boolean inStar ( final NamePattern [ ] pattern , final char [ ] [ ] target , int pi , int ti , final int pLeft , int tLeft , int starsLeft ) { } public FuzzyBoolean matchesInstanceof ( ResolvedType type ) { } public NamePattern extractName ( ) { } public boolean maybeExtractName ( String string ) { } public String maybeGetSimpleName ( ) { } public String maybeGetCleanName ( ) { } public TypePattern resolveBindings ( IScope scope , Bindings bindings , boolean allowBinding , boolean requireExactType ) { } private TypePattern maybeResolveToAnyPattern ( IScope scope , Bindings bindings , boolean allowBinding , boolean requireExactType ) { } private TypePattern maybeResolveToBindingTypePattern ( IScope scope , Bindings bindings , boolean allowBinding , boolean requireExactType ) { } private TypePattern resolveBindingsFromFullyQualifiedTypeName ( String fullyQualifiedName , IScope scope , Bindings bindings , boolean allowBinding , boolean requireExactType ) { } private TypePattern resolveBindingsForExactType ( IScope scope , UnresolvedType aType , String fullyQualifiedName , boolean requireExactType ) { } private TypePattern resolveGenericWildcard ( IScope scope , UnresolvedType aType ) { } private TypePattern resolveParameterizedType ( IScope scope , UnresolvedType aType , boolean requireExactType ) { } private TypePattern resolveBindingsForMissingType ( ResolvedType typeFoundInWholeWorldSearch , String nameWeLookedFor , IScope scope , Bindings bindings , boolean allowBinding , boolean requireExactType ) { } private TypePattern resolveBindingsForTypeVariable ( IScope scope , UnresolvedTypeVariableReferenceType tvrType ) { } private boolean verifyTypeParameters ( ResolvedType baseType , IScope scope , boolean requireExactType ) { ResolvedType genericType = baseType . getGenericType ( ) ; if ( genericType == null ) { <START_BUG> scope . message ( MessageUtil . warn ( WeaverMessages . format ( NOT_A_GENERIC_TYPE , genericType . getName ( ) ) , getSourceLocation ( ) ) ) ; <END_BUG> return false ; } int minRequiredTypeParameters = typeParameters . size ( ) ; boolean foundEllipsis = false ; TypePattern [ ] typeParamPatterns = typeParameters . getTypePatterns ( ) ; for ( int i = 0 ; i < ( typeParamPatterns . length ) ; i ++ ) { if ( ( typeParamPatterns [ i ] ) instanceof WildTypePattern ) { WildTypePattern wtp = ( ( WildTypePattern ) ( typeParamPatterns [ i ] ) ) ; if ( ( wtp . ellipsisCount ) > 0 ) { foundEllipsis = true ; minRequiredTypeParameters -- ; } } } TypeVariable [ ] tvs = genericType . getTypeVariables ( ) ; if ( ( ( tvs . length ) < minRequiredTypeParameters ) || ( ( ! foundEllipsis ) && ( minRequiredTypeParameters != ( tvs . length ) ) ) ) { String msg = WeaverMessages . format ( INCORRECT_NUMBER_OF_TYPE_ARGUMENTS , genericType . getName ( ) , new Integer ( tvs . length ) ) ; if ( requireExactType ) scope . message ( MessageUtil . error ( msg , getSourceLocation ( ) ) ) ; else scope . message ( MessageUtil . warn ( msg , getSourceLocation ( ) ) ) ; return false ; } if ( typeParameters . areAllExact ( ) ) { for ( int i = 0 ; i < ( tvs . length ) ; i ++ ) { UnresolvedType ut = typeParamPatterns [ i ] . getExactType ( ) ; if ( ! ( tvs [ i ] . canBeBoundTo ( ut . resolve ( scope . getWorld ( ) ) ) ) ) { String parameterName = ut . getName ( ) ; if ( ut . isTypeVariableReference ( ) ) parameterName = ( ( org . aspectj . weaver . TypeVariableReference ) ( ut ) ) . getTypeVariable ( ) . getDisplayName ( ) ;

Fix:
scope . message ( MessageUtil . warn ( WeaverMessages . format ( NOT_A_GENERIC_TYPE , baseType . getName ( ) ) , getSourceLocation ( ) ) ) ;