Buggy code:
public ResolvedTypeX getResolvedComponentType ( ) { } public ResolvedTypeX resolve ( World world ) { } public World getWorld ( ) { } public final boolean equals ( Object other ) { } public Iterator getFields ( ) { } public Iterator getMethods ( ) { } public ResolvedMember lookupField ( Member m ) { } public ResolvedMember lookupMethod ( Member m ) { } private ResolvedMember lookupMember ( Member m , Iterator i ) { } private ResolvedMember lookupMember ( Member m , ResolvedMember [ ] a ) { } public static boolean matches ( Member m1 , Member m2 ) { } public static boolean conflictingSignature ( Member m1 , Member m2 ) { } public Iterator getPointcuts ( ) { } public ResolvedPointcutDefinition findPointcut ( String name ) { } public CrosscuttingMembers crosscuttingMembers ; public CrosscuttingMembers collectCrosscuttingMembers ( ) { } public final Collection collectDeclares ( boolean includeAdviceLike ) { } private final Collection collectShadowMungers ( ) { } protected boolean doesNotExposeShadowMungers ( ) { } public PerClause getPerClause ( ) { } protected Collection getDeclares ( ) { } protected Collection getTypeMungers ( ) { } protected Collection getPrivilegedAccesses ( ) { } public final boolean isInterface ( ) { } public final boolean isAbstract ( ) { } public boolean isClass ( ) { } public boolean isAspect ( ) { } public boolean isSynthetic ( ) { } public final boolean isFinal ( ) { } public Collection getDeclaredAdvice ( ) { } private List shadowMungers = new ArrayList ( 0 ) ; public Collection getDeclaredShadowMungers ( ) { } public void addShadowMunger ( ShadowMunger munger ) { } public ResolvedMember [ ] getDeclaredJavaFields ( ) { } public ResolvedMember [ ] getDeclaredJavaMethods ( ) { } public ShadowMunger [ ] getDeclaredShadowMungersArray ( ) { } private ResolvedMember [ ] filterInJavaVisible ( ResolvedMember [ ] ms ) { } public abstract ISourceContext getSourceContext ( ) { } public static final ResolvedTypeX [ ] NONE = new ResolvedTypeX [ 0 ] ; public static final ResolvedTypeX . Primitive BYTE = new ResolvedTypeX . Primitive ( "B" , 1 , 0 ) ; public static final ResolvedTypeX . Primitive CHAR = new ResolvedTypeX . Primitive ( "C" , 1 , 1 ) ; public static final ResolvedTypeX . Primitive DOUBLE = new ResolvedTypeX . Primitive ( "D" , 2 , 2 ) ; public static final ResolvedTypeX . Primitive FLOAT = new ResolvedTypeX . Primitive ( "F" , 1 , 3 ) ; public static final ResolvedTypeX . Primitive INT = new ResolvedTypeX . Primitive ( "I" , 1 , 4 ) ; public static final ResolvedTypeX . Primitive LONG = new ResolvedTypeX . Primitive ( "J" , 2 , 5 ) ; public static final ResolvedTypeX . Primitive SHORT = new ResolvedTypeX . Primitive ( "S" , 1 , 6 ) ; public static final ResolvedTypeX . Primitive VOID = new ResolvedTypeX . Primitive ( "V" , 0 , 8 ) ; public static final ResolvedTypeX . Primitive BOOLEAN = new ResolvedTypeX . Primitive ( "Z" , 1 , 7 ) ; public static final ResolvedTypeX . Missing MISSING = new ResolvedTypeX . Missing ( ) ; public static class Name extends ResolvedTypeX { private ResolvedTypeX . ConcreteName delegate = null ; private ISourceContext sourceContext = null ; private int startPos = 0 ; private int endPos = 0 ; public Name ( String signature , World world ) { } public final boolean isClass ( ) { } public boolean isAspect ( ) { } public final boolean needsNoConversionFrom ( TypeX o ) { } public final boolean isAssignableFrom ( TypeX o ) { } public final boolean isCoerceableFrom ( TypeX o ) { ResolvedTypeX other = o . resolve ( world ) ; if ( ( this . isAssignableFrom ( other ) ) || ( other . isAssignableFrom ( this ) ) ) { return true ; } if ( ( ! ( this . isInterface ( ) ) ) && ( ! ( other . isInterface ( ) ) ) ) { return false ; } if ( ( this . isFinal ( ) ) || ( other . isFinal ( ) ) ) { return false ; } ResolvedMember [ ] a = getDeclaredMethods ( ) ; <START_BUG> ResolvedMember [ ] b = ( ( ResolvedTypeX . Name ) ( other ) ) . getDeclaredMethods ( ) ; <END_BUG> for ( int ai = 0 , alen = a . length ; ai < alen ; ai ++ ) { for ( int bi = 0 , blen = b . length ; bi < blen ; bi ++ ) { if ( ! ( b [ bi ] . isCompatibleWith ( a [ ai ] ) ) ) return false ; } } return true ; } private boolean isAssignableFrom ( ResolvedTypeX other ) { } public ISourceContext getSourceContext ( ) { } public ISourceLocation getSourceLocation ( ) { } public boolean isExposedToWeaver ( ) { } public WeaverStateInfo getWeaverState ( ) { } public ResolvedMember [ ] getDeclaredFields ( ) { } public ResolvedTypeX [ ] getDeclaredInterfaces ( ) { } public ResolvedMember [ ] getDeclaredMethods ( ) { } public ResolvedMember [ ] getDeclaredPointcuts ( ) { } public PerClause getPerClause ( ) { } protected Collection getDeclares ( ) { } protected Collection getTypeMungers ( ) { } protected Collection getPrivilegedAccesses ( ) { } public int getModifiers ( ) { } public ResolvedTypeX getSuperclass ( ) { } public ResolvedTypeX . ConcreteName getDelegate ( ) { } public void setDelegate ( ResolvedTypeX . ConcreteName delegate ) { } public int getEndPos ( ) { } public int getStartPos ( ) { } public void setEndPos ( int endPos ) { } public void setSourceContext ( ISourceContext sourceContext ) { } public void setStartPos ( int startPos ) { } public boolean doesNotExposeShadowMungers ( ) { } }

Fix:
ResolvedMember [ ] b = other . getDeclaredMethods ( ) ;