Buggy code:
List list = new ArrayList ( ) ; IfaceInitList ( ResolvedType onType ) { } public int compareTo ( Object other ) { } public int fallbackCompareTo ( Object other ) { } } public boolean addDispatchTarget ( ResolvedMember m ) { } public void addLazyMethodGen ( LazyMethodGen gen ) { } public void addOrReplaceLazyMethodGen ( LazyMethodGen mg ) { } private boolean alreadyDefined ( LazyClassGen clazz , LazyMethodGen mg ) { } private boolean signaturesMatch ( LazyMethodGen mg , LazyMethodGen existing ) { } public boolean weave ( ) { } private boolean weaveDeclareAtMethodCtor ( LazyClassGen clazz ) { } private void reportMethodCtorWeavingMessage ( LazyClassGen clazz , LazyMethodGen mg , DeclareAnnotation decaM ) { } private List getMatchingSubset ( List declareAnnotations , ResolvedType type ) { } private List getITDSubset ( LazyClassGen clazz , ResolvedTypeMunger . Kind wantedKind ) { } public LazyMethodGen locateAnnotationHolderForFieldMunger ( LazyClassGen clazz , BcelTypeMunger fieldMunger ) { } public LazyMethodGen locateAnnotationHolderForMethodCtorMunger ( LazyClassGen clazz , BcelTypeMunger methodCtorMunger ) { } private boolean weaveAtFieldRepeatedly ( List decaFs , List itdFields , List reportedErrors ) { } private boolean weaveAtMethodOnITDSRepeatedly ( List decaMCs , List itdMethodsCtors , List reportedErrors ) { } private boolean dontAddTwice ( DeclareAnnotation decaF , Annotation [ ] dontAddMeTwice ) { } private boolean weaveDeclareAtField ( LazyClassGen clazz ) { } private void reportFieldAnnotationWeavingMessage ( LazyClassGen clazz , Field [ ] fields , int fieldCounter , DeclareAnnotation decaF ) { } private boolean doesAlreadyHaveAnnotation ( ResolvedMember rm , DeclareAnnotation deca , List reportedProblems ) { } private boolean doesAlreadyHaveAnnotation ( LazyMethodGen rm , ResolvedMember itdfieldsig , DeclareAnnotation deca , List reportedProblems ) { } private Set findAspectsForMungers ( LazyMethodGen mg ) { } private boolean inlineSelfConstructors ( List methodGens ) { } private void positionAndImplement ( List initializationShadows ) { } private void positionInitializationShadow ( BcelShadow s ) { } private boolean isThisCall ( InstructionHandle ih ) { } public static void inlineMethod ( LazyMethodGen donor , LazyMethodGen recipient , InstructionHandle call ) { } static InstructionList genInlineInstructions ( LazyMethodGen donor , LazyMethodGen recipient , IntMap frameEnv , InstructionFactory fact , boolean keepReturns ) { } private static InstructionList genArgumentStores ( LazyMethodGen donor , LazyMethodGen recipient , IntMap frameEnv , InstructionFactory fact ) { } private LazyMethodGen getCalledMethod ( InstructionHandle ih ) { } private void weaveInAddedMethods ( ) { } void addPerSingletonField ( Member field ) { } private InstructionHandle findSuperOrThisCall ( LazyMethodGen mg ) { } private boolean match ( LazyMethodGen mg ) { } private boolean matchInit ( LazyMethodGen mg , List shadowAccumulator ) { } private boolean shouldWeaveBody ( LazyMethodGen mg ) { } private InstructionList genInitInstructions ( List list , boolean isStatic ) { } private void match ( LazyMethodGen mg , InstructionHandle ih , BcelShadow enclosingShadow , List shadowAccumulator ) { } private boolean isInitFailureHandler ( InstructionHandle ih ) { } private void matchSetInstruction ( LazyMethodGen mg , InstructionHandle ih , BcelShadow enclosingShadow , List shadowAccumulator ) { } private void matchGetInstruction ( LazyMethodGen mg , InstructionHandle ih , BcelShadow enclosingShadow , List shadowAccumulator ) { } private void fixAnnotationsForResolvedMember ( ResolvedMember rm , ResolvedMember declaredSig ) { try { UnresolvedType memberHostType = declaredSig . getDeclaringType ( ) ; ResolvedType [ ] annotations = ( ( ResolvedType [ ] ) ( mapToAnnotations . get ( rm ) ) ) ; String methodName = declaredSig . getName ( ) ; if ( annotations == null ) { if ( ( rm . getKind ( ) ) == ( Member . FIELD ) ) { if ( methodName . startsWith ( "ajc$inlineAccessField" ) ) { ResolvedMember resolvedDooberry = world . resolve ( rm ) ; annotations = resolvedDooberry . getAnnotationTypes ( ) ; } else { ResolvedMember realthing = AjcMemberMaker . interFieldInitializer ( rm , memberHostType ) ; ResolvedMember resolvedDooberry = world . resolve ( realthing ) ; annotations = resolvedDooberry . getAnnotationTypes ( ) ; } } else if ( ( ( rm . getKind ( ) ) == ( Member . METHOD ) ) && ( ! ( rm . isAbstract ( ) ) ) ) { if ( ( methodName . startsWith ( "ajc$inlineAccessMethod" ) ) || ( methodName . startsWith ( "ajc$superDispatch" ) ) ) { ResolvedMember resolvedDooberry = world . resolve ( declaredSig ) ; annotations = resolvedDooberry . getAnnotationTypes ( ) ; } else { <START_BUG> ResolvedMember realthing = AjcMemberMaker . interMethodDispatcher ( rm , memberHostType ) ; <END_BUG> ResolvedMember resolvedDooberry = world . resolve ( realthing ) ; if ( resolvedDooberry == null ) { throw new UnsupportedOperationException ( "Known<seq2seq4repair_space>limitation<seq2seq4repair_space>in<seq2seq4repair_space>M4<seq2seq4repair_space>-<seq2seq4repair_space>can't<seq2seq4repair_space>find<seq2seq4repair_space>ITD<seq2seq4repair_space>members<seq2seq4repair_space>when<seq2seq4repair_space>type<seq2seq4repair_space>variable<seq2seq4repair_space>is<seq2seq4repair_space>used<seq2seq4repair_space>as<seq2seq4repair_space>an<seq2seq4repair_space>argument<seq2seq4repair_space>and<seq2seq4repair_space>has<seq2seq4repair_space>upper<seq2seq4repair_space>bound<seq2seq4repair_space>specified" ) ; } annotations = resolvedDooberry . getAnnotationTypes ( ) ; } } else if ( ( rm . getKind ( ) ) == ( Member . CONSTRUCTOR ) ) { ResolvedMember realThing = AjcMemberMaker . postIntroducedConstructor ( memberHostType . resolve ( world ) , rm . getDeclaringType ( ) , rm . getParameterTypes ( ) ) ; ResolvedMember resolvedDooberry = world . resolve ( realThing ) ; if ( resolvedDooberry == null ) { throw new UnsupportedOperationException ( "Known<seq2seq4repair_space>limitation<seq2seq4repair_space>in<seq2seq4repair_space>M4<seq2seq4repair_space>-<seq2seq4repair_space>can't<seq2seq4repair_space>find<seq2seq4repair_space>ITD<seq2seq4repair_space>members<seq2seq4repair_space>when<seq2seq4repair_space>type<seq2seq4repair_space>variable<seq2seq4repair_space>is<seq2seq4repair_space>used<seq2seq4repair_space>as<seq2seq4repair_space>an<seq2seq4repair_space>argument<seq2seq4repair_space>and<seq2seq4repair_space>has<seq2seq4repair_space>upper<seq2seq4repair_space>bound<seq2seq4repair_space>specified" ) ; } annotations = resolvedDooberry . getAnnotationTypes ( ) ; } if ( annotations == null ) annotations = new ResolvedType [ 0 ] ; mapToAnnotations . put ( rm , annotations ) ; } rm . setAnnotationTypes ( annotations ) ; } catch ( UnsupportedOperationException ex ) { throw ex ; } catch ( Throwable t ) { throw new org . aspectj . weaver . BCException ( ( "Unexpectedly<seq2seq4repair_space>went<seq2seq4repair_space>bang<seq2seq4repair_space>when<seq2seq4repair_space>searching<seq2seq4repair_space>for<seq2seq4repair_space>annotations<seq2seq4repair_space>on<seq2seq4repair_space>" + rm ) , t ) ; } } private void matchInvokeInstruction ( LazyMethodGen mg , InstructionHandle ih , InvokeInstruction invoke , BcelShadow enclosingShadow , List shadowAccumulator ) { } private boolean match ( BcelShadow shadow , List shadowAccumulator ) { } private void implement ( LazyMethodGen mg ) { } public LazyClassGen getLazyClassGen ( ) { } public List getShadowMungers ( ) { } public BcelWorld getWorld ( ) { } public static void setReweavableMode ( boolean mode ) { }

Fix:
ResolvedMember realthing = AjcMemberMaker . interMethodDispatcher ( rm . resolve ( world ) , memberHostType ) ;