Test & fix for Bug 355314 - abstract method error may be masked by callout binding
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java
index 43997c7..c8134f8 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemHandler.java
@@ -161,10 +161,9 @@
 			boolean alreadyReported = ((severity & ProblemSeverities.Error) != 0)
 										? method.compilationResult().hasErrors()
 										: method.compilationResult().hasWarnings();
-			if (alreadyReported) {
+			if (alreadyReported && !requireRecheck) { // recheckable problems should not be skipped, rechecker has better judgment
 				if ((severity & ProblemSeverities.Fatal) != 0)
-					if (!requireRecheck)
-						referenceContext.tagAsHavingErrors();
+					referenceContext.tagAsHavingErrors();
 				return;
 			}
 		} else if (method.binding != null) {