### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java,v retrieving revision 1.123 diff -u -r1.123 BinaryTypeBinding.java --- compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java 21 Sep 2009 23:37:04 -0000 1.123 +++ compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java 12 Oct 2010 23:23:00 -0000 @@ -217,6 +217,7 @@ if ((this.tagBits & TagBits.AreMethodsComplete) != 0) return this.methods; + removeUnresolvedMethods(); // lazily sort methods if ((this.tagBits & TagBits.AreMethodsSorted) == 0) { int length = this.methods.length; @@ -239,6 +240,26 @@ return availableMethods; } +private void removeUnresolvedMethods() { + int methodsLength = methods.length; + for (int i = 0; i < methods.length; i++) { + MethodBinding method = methods[i]; + if (method == null) { + methodsLength--; + } + } + if (methodsLength != methods.length) { + MethodBinding[] newMethods = new MethodBinding[methodsLength]; + int n = 0; + for (int i = 0; i < methods.length; i++) { + if (methods[i] != null) { + newMethods[n++] = methods[i]; + } + } + methods = newMethods; + } +} + void cachePartsFrom(IBinaryType binaryType, boolean needFieldsAndMethods) { try { // default initialization for super-interfaces early, in case some aborting compilation error occurs,