Buggy code:
public class AjTypeImpl < T > implements AjType { private static final String ajcMagic = "ajc$" ; private Class < T > clazz ; private Pointcut [ ] declaredPointcuts = null ; private Pointcut [ ] pointcuts = null ; private Advice [ ] declaredAdvice = null ; private Advice [ ] advice = null ; public AjTypeImpl ( Class < T > fromClass ) { } public String getName ( ) { } public Package getPackage ( ) { } public Class [ ] getInterfaces ( ) { } public int getModifiers ( ) { } public AjType getSupertype ( ) { } public Type getGenericSupertype ( ) { } public Method getEnclosingMethod ( ) { } public Constructor getEnclosingConstructor ( ) { } public AjType getEnclosingType ( ) { } public AjType getDeclaringType ( ) { } public PerClause getPerClause ( ) { } public boolean isAnnotationPresent ( Class annotationType ) { } public Annotation getAnnotation ( Class annotationType ) { } public Annotation [ ] getAnnotations ( ) { } public Annotation [ ] getDeclaredAnnotations ( ) { } public AjType [ ] getAjTypes ( ) { } public AjType [ ] getDeclaredAjTypes ( ) { } public Constructor getConstructor ( Class ... parameterTypes ) throws NoSuchMethodException { } public Constructor [ ] getConstructors ( ) { } public Constructor getDeclaredConstructor ( Class ... parameterTypes ) throws NoSuchMethodException { } public Constructor [ ] getDeclaredConstructors ( ) { } public Field getDeclaredField ( String name ) throws NoSuchFieldException { } public Field [ ] getDeclaredFields ( ) { } public Field getField ( String name ) throws NoSuchFieldException { } public Field [ ] getFields ( ) { } public Method getDeclaredMethod ( String name , Class ... parameterTypes ) throws NoSuchMethodException { } public Method getMethod ( String name , Class ... parameterTypes ) throws NoSuchMethodException { } public Method [ ] getDeclaredMethods ( ) { } public Method [ ] getMethods ( ) { } private boolean isReallyAMethod ( Method method ) { } public Pointcut getDeclaredPointcut ( String name ) throws NoSuchPointcutException { } public Pointcut getPointcut ( String name ) throws NoSuchPointcutException { } public Pointcut [ ] getDeclaredPointcuts ( ) { } public Pointcut [ ] getPointcuts ( ) { } private Pointcut asPointcut ( Method method ) { org . aspectj . lang . annotation . Pointcut pcAnn = method . getAnnotation ( Pointcut . class ) ; if ( pcAnn != null ) { String name = method . getName ( ) ; if ( name . startsWith ( AjTypeImpl . ajcMagic ) ) { int nameStart = name . indexOf ( "$$" ) ; name = name . substring ( ( nameStart + 2 ) , name . length ( ) ) ; int nextDollar = name . indexOf ( "$" ) ; if ( nextDollar != ( - 1 ) ) name = name . substring ( 0 , nextDollar ) ; } <START_BUG> return new PointcutImpl ( name , pcAnn . value ( ) , method , AjTypeSystem . getAjType ( method . getDeclaringClass ( ) ) ) ; <END_BUG> } else { return null ; } } public Advice [ ] getDeclaredAdvice ( AdviceType ... ofType ) { } public Advice [ ] getAdvice ( AdviceType ... ofType ) { } private Advice [ ] getDeclaredAdvice ( Set ofAdviceTypes ) { } private void initDeclaredAdvice ( ) { } private Advice [ ] getAdvice ( Set ofAdviceTypes ) { } private void initAdvice ( ) { } public Advice getAdvice ( String name ) throws NoSuchAdviceException { } public Advice getDeclaredAdvice ( String name ) throws NoSuchAdviceException { } private Advice asAdvice ( Method method ) { } public InterTypeMethodDeclaration getDeclaredITDMethod ( String name , Class target , Class ... parameterTypes ) { } public InterTypeMethodDeclaration [ ] getDeclaredITDMethods ( ) { } public InterTypeMethodDeclaration getITDMethod ( String name , Class target , Class ... parameterTypes ) { } public InterTypeMethodDeclaration [ ] getITDMethods ( ) { } public InterTypeConstructorDeclaration getDeclaredITDConstructor ( Class target , Class ... parameterTypes ) { } public InterTypeConstructorDeclaration [ ] getDeclaredITDConstructors ( ) { } public InterTypeConstructorDeclaration getITDConstructor ( Class target , Class ... parameterTypes ) { } public InterTypeConstructorDeclaration [ ] getITDConstructors ( ) { } public InterTypeFieldDeclaration getDeclaredITDField ( String name , Class target ) { } public InterTypeFieldDeclaration [ ] getDeclaredITDFields ( ) { } public InterTypeFieldDeclaration getITDField ( String name , Class target ) { } public InterTypeFieldDeclaration [ ] getITDFields ( ) { } public DeclareErrorOrWarning [ ] getDeclareErrorOrWarnings ( ) { } public DeclareParents [ ] getDeclareParents ( ) { } public DeclareSoft [ ] getDeclareSofts ( ) { } public DeclareAnnotation [ ] getDeclareAnnotations ( ) { } public DeclarePrecedence [ ] getDeclarePrecedence ( ) { } public Object [ ] getEnumConstants ( ) { } public TypeVariable [ ] getTypeParameters ( ) { } public boolean isEnum ( ) { } public boolean isInstance ( Object o ) { } public boolean isInterface ( ) { } public boolean isLocalClass ( ) { } public boolean isMemberClass ( ) { } public boolean isArray ( ) { } public boolean isPrimitive ( ) { } public boolean isAspect ( ) { } public boolean isMemberAspect ( ) { } public boolean isPrivileged ( ) { } @ Override public boolean equals ( Object obj ) { } @ Override public int hashCode ( ) { } }

Fix:
return new PointcutImpl ( name , pcAnn . value ( ) , method , AjTypeSystem . getAjType ( method . getDeclaringClass ( ) ) , pcAnn . argNames ( ) ) ;