Buggy code:
public class ParameterizedTypeBinding extends ReferenceBinding implements Substitution { public ReferenceBinding type ; public TypeBinding [ ] arguments ; public LookupEnvironment environment ; public char [ ] genericTypeSignature ; public ReferenceBinding superclass ; public ReferenceBinding [ ] superInterfaces ; public FieldBinding [ ] fields ; public ReferenceBinding [ ] memberTypes ; public MethodBinding [ ] methods ; private ReferenceBinding enclosingType ; public ParameterizedTypeBinding ( ReferenceBinding type , TypeBinding [ ] arguments , ReferenceBinding enclosingType , LookupEnvironment environment ) { } public void collectSubstitutes ( TypeBinding otherType , Map substitutes ) { } public void computeId ( ) { } public char [ ] constantPoolName ( ) { } public ParameterizedMethodBinding createParameterizedMethod ( MethodBinding originalMethod ) { } public String debugName ( ) { } public ReferenceBinding enclosingType ( ) { } public TypeBinding erasure ( ) { } public int fieldCount ( ) { } public FieldBinding [ ] fields ( ) { } public char [ ] genericTypeSignature ( ) { } public MethodBinding getExactConstructor ( TypeBinding [ ] argumentTypes ) { } public MethodBinding getExactMethod ( char [ ] selector , TypeBinding [ ] argumentTypes , CompilationUnitScope refScope ) { } public FieldBinding getField ( char [ ] fieldName , boolean needResolve ) { } public ReferenceBinding getMemberType ( char [ ] typeName ) { } public MethodBinding [ ] getMethods ( char [ ] selector ) { } public boolean hasMemberTypes ( ) { } public boolean implementsMethod ( MethodBinding method ) { } void initialize ( ReferenceBinding someType , TypeBinding [ ] someArguments ) { } protected void initializeArguments ( ) { } public boolean isEquivalentTo ( TypeBinding otherType ) { } public boolean isParameterizedType ( ) { } public ReferenceBinding [ ] memberTypes ( ) { } public MethodBinding [ ] methods ( ) { if ( ( ( modifiers ) & ( AccUnresolved ) ) == 0 ) return this . methods ; try { MethodBinding [ ] originalMethods = this . type . methods ( ) ; int length = originalMethods . length ; MethodBinding [ ] parameterizedMethods = new MethodBinding [ length ] ; for ( int i = 0 ; i < length ; i ++ ) parameterizedMethods [ i ] = createParameterizedMethod ( originalMethods [ i ] ) ; this . methods = parameterizedMethods ; } finally { if ( ( this . methods ) == null ) this . methods = NoMethods ; <START_BUG> modifiers ^= AccUnresolved ; <END_BUG> } return this . methods ; } public char [ ] qualifiedSourceName ( ) { } public char [ ] readableName ( ) { } ReferenceBinding resolve ( ) { } public char [ ] shortReadableName ( ) { } public char [ ] signature ( ) { } public char [ ] sourceName ( ) { } public TypeBinding substitute ( TypeBinding originalType ) { } public ReferenceBinding superclass ( ) { } public ReferenceBinding [ ] superInterfaces ( ) { } public void swapUnresolved ( UnresolvedReferenceBinding unresolvedType , ReferenceBinding resolvedType , LookupEnvironment env ) { } public ReferenceBinding [ ] syntheticEnclosingInstanceTypes ( ) { } public SyntheticArgumentBinding [ ] syntheticOuterLocalVariables ( ) { } public char [ ] qualifiedPackageName ( ) { } public String toString ( ) { } public TypeVariableBinding [ ] typeVariables ( ) { } }

Fix:
modifiers &= ~ ( AccUnresolved ) ;