6955264: add option to suppress Abort in Check.completionError
Reviewed-by: mcimadamore
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Wed Jun 02 19:08:47 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Thu Jun 03 17:14:20 2010 -0700
@@ -64,6 +64,7 @@
private final JCDiagnostic.Factory diags;
private final boolean skipAnnotations;
private boolean warnOnSyntheticConflicts;
+ private boolean suppressAbortOnBadClassFile;
private final TreeInfo treeinfo;
// The set of lint options currently in effect. It is initialized
@@ -98,6 +99,7 @@
complexInference = options.get("-complexinference") != null;
skipAnnotations = options.get("skipAnnotations") != null;
warnOnSyntheticConflicts = options.get("warnOnSyntheticConflicts") != null;
+ suppressAbortOnBadClassFile = options.get("suppressAbortOnBadClassFile") != null;
Target target = Target.instance(context);
syntheticNameChar = target.syntheticNameChar();
@@ -210,7 +212,8 @@
*/
public Type completionError(DiagnosticPosition pos, CompletionFailure ex) {
log.error(pos, "cant.access", ex.sym, ex.getDetailValue());
- if (ex instanceof ClassReader.BadClassFile) throw new Abort();
+ if (ex instanceof ClassReader.BadClassFile
+ && !suppressAbortOnBadClassFile) throw new Abort();
else return syms.errType;
}