Buggy code:
public class Java15ReflectionBasedReferenceTypeDelegate extends ReflectionBasedReferenceTypeDelegate { private AjType < ? > myType ; private ResolvedType [ ] annotations ; private ResolvedMember [ ] pointcuts ; private ResolvedMember [ ] methods ; private ResolvedMember [ ] fields ; private TypeVariable [ ] typeVariables ; private ResolvedType superclass ; private ResolvedType [ ] superInterfaces ; private String genericSignature = null ; private JavaLangTypeToResolvedTypeConverter typeConverter ; private Java15AnnotationFinder annotationFinder = null ; private ArgNameFinder argNameFinder = null ; public Java15ReflectionBasedReferenceTypeDelegate ( ) { } @ Override public void initialize ( ReferenceType aType , Class aClass , ClassLoader classLoader , World aWorld ) { } public ReferenceType buildGenericType ( ) { } public AnnotationX [ ] getAnnotations ( ) { } public ResolvedType [ ] getAnnotationTypes ( ) { } public boolean hasAnnotation ( UnresolvedType ofType ) { } public ResolvedMember [ ] getDeclaredFields ( ) { } public String getDeclaredGenericSignature ( ) { } public ResolvedType [ ] getDeclaredInterfaces ( ) { } public ResolvedType getSuperclass ( ) { } public TypeVariable [ ] getTypeVariables ( ) { } public ResolvedMember [ ] getDeclaredMethods ( ) { } public ResolvedType getGenericResolvedType ( ) { } private ResolvedMember createGenericMethodMember ( Method forMethod ) { } private ResolvedMember createGenericConstructorMember ( Constructor forConstructor ) { } private ResolvedMember createGenericFieldMember ( Field forField ) { } public ResolvedMember [ ] getDeclaredPointcuts ( ) { if ( ( pointcuts ) == null ) { Pointcut [ ] pcs = this . myType . getDeclaredPointcuts ( ) ; pointcuts = new ResolvedMember [ pcs . length ] ; InternalUseOnlyPointcutParser parser = null ; World world = getWorld ( ) ; if ( world instanceof ReflectionWorld ) { parser = new InternalUseOnlyPointcutParser ( classLoader , ( ( ReflectionWorld ) ( getWorld ( ) ) ) ) ; } else { parser = new InternalUseOnlyPointcutParser ( classLoader ) ; } for ( int i = 0 ; i < ( pcs . length ) ; i ++ ) { AjType < ? > [ ] ptypes = pcs [ i ] . getParameterTypes ( ) ; UnresolvedType [ ] weaverPTypes = new UnresolvedType [ ptypes . length ] ; for ( int j = 0 ; j < ( weaverPTypes . length ) ; j ++ ) { <START_BUG> weaverPTypes [ j ] = UnresolvedType . forName ( ptypes [ j ] . getName ( ) ) ; <END_BUG> } pointcuts [ i ] = new DeferredResolvedPointcutDefinition ( getResolvedTypeX ( ) , pcs [ i ] . getModifiers ( ) , pcs [ i ] . getName ( ) , weaverPTypes ) ; } PointcutParameter [ ] [ ] parameters = new PointcutParameter [ pcs . length ] [ ] ; for ( int i = 0 ; i < ( pcs . length ) ; i ++ ) { AjType < ? > [ ] ptypes = pcs [ i ] . getParameterTypes ( ) ; String [ ] pnames = pcs [ i ] . getParameterNames ( ) ; if ( ( pnames . length ) != ( ptypes . length ) ) { pnames = tryToDiscoverParameterNames ( pcs [ i ] ) ; if ( ( pnames == null ) || ( ( pnames . length ) != ( ptypes . length ) ) ) { throw new IllegalStateException ( ( ( ( "Required<seq2seq4repair_space>parameter<seq2seq4repair_space>names<seq2seq4repair_space>not<seq2seq4repair_space>available<seq2seq4repair_space>when<seq2seq4repair_space>parsing<seq2seq4repair_space>pointcut<seq2seq4repair_space>" + ( pcs [ i ] . getName ( ) ) ) + "<seq2seq4repair_space>in<seq2seq4repair_space>type<seq2seq4repair_space>" ) + ( getResolvedTypeX ( ) . getName ( ) ) ) ) ; } } parameters [ i ] = new PointcutParameter [ ptypes . length ] ; for ( int j = 0 ; j < ( parameters [ i ] . length ) ; j ++ ) { parameters [ i ] [ j ] = parser . createPointcutParameter ( pnames [ j ] , ptypes [ j ] . getJavaClass ( ) ) ; } String pcExpr = pcs [ i ] . getPointcutExpression ( ) . toString ( ) ; org . aspectj . weaver . patterns . Pointcut pc = parser . resolvePointcutExpression ( pcExpr , getBaseClass ( ) , parameters [ i ] ) ; ( ( ResolvedPointcutDefinition ) ( pointcuts [ i ] ) ) . setParameterNames ( pnames ) ; ( ( ResolvedPointcutDefinition ) ( pointcuts [ i ] ) ) . setPointcut ( pc ) ; } for ( int i = 0 ; i < ( pointcuts . length ) ; i ++ ) { ResolvedPointcutDefinition rpd = ( ( ResolvedPointcutDefinition ) ( pointcuts [ i ] ) ) ; rpd . setPointcut ( parser . concretizePointcutExpression ( rpd . getPointcut ( ) , getBaseClass ( ) , parameters [ i ] ) ) ; } } return pointcuts ; } private String [ ] tryToDiscoverParameterNames ( Pointcut pcut ) { } public boolean isAnnotation ( ) { } public boolean isAnnotationStyleAspect ( ) { } public boolean isAnnotationWithRuntimeRetention ( ) { } public boolean isAspect ( ) { } public boolean isEnum ( ) { } public boolean isGeneric ( ) { } @ Override public boolean isAnonymous ( ) { } }

Fix:
weaverPTypes [ j ] = this . typeConverter . fromType ( ptypes [ j ] . getJavaClass ( ) ) ;