< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java

Print this page
rev 48841 : imported patch 8187950

*** 36,45 **** --- 36,46 ---- import javax.lang.model.element.TypeElement; import javax.tools.*; import com.sun.source.tree.*; import com.sun.tools.javac.code.*; + import com.sun.tools.javac.code.DeferredCompletionFailureHandler.Handler; import com.sun.tools.javac.code.Symbol.ClassSymbol; import com.sun.tools.javac.comp.*; import com.sun.tools.javac.file.BaseFileManager; import com.sun.tools.javac.main.*; import com.sun.tools.javac.main.JavaCompiler;
*** 70,79 **** --- 71,81 ---- */ public class JavacTaskImpl extends BasicJavacTask { private final Arguments args; private JavaCompiler compiler; private JavaFileManager fileManager; + private DeferredCompletionFailureHandler dcfh; private Locale locale; private Map<JavaFileObject, JCCompilationUnit> notYetEntered; private ListBuffer<Env<AttrContext>> genList; private final AtomicBoolean used = new AtomicBoolean(); private Iterable<? extends Processor> processors;
*** 81,90 **** --- 83,94 ---- protected JavacTaskImpl(Context context) { super(context, true); args = Arguments.instance(context); fileManager = context.get(JavaFileManager.class); + dcfh = DeferredCompletionFailureHandler.instance(context); + dcfh.setHandler(dcfh.userCodeHandler); } @Override @DefinedBy(Api.COMPILER) public Boolean call() { return doCall().isOK();
*** 136,145 **** --- 140,150 ---- throw new IllegalStateException(); this.locale = locale; } private <T> T handleExceptions(Callable<T> c, T sysErrorResult, T abnormalErrorResult) { + Handler prevDeferredHandler = dcfh.setHandler(dcfh.javacCodeHandler); try { return c.call(); } catch (FatalError ex) { Log log = Log.instance(context); Options options = Options.instance(context);
*** 169,178 **** --- 174,185 ---- Log log = Log.instance(context); log.printLines(PrefixKind.JAVAC, "msg.bug", JavaCompiler.version()); ex.printStackTrace(log.getWriter(WriterKind.NOTICE)); } return abnormalErrorResult; + } finally { + dcfh.setHandler(prevDeferredHandler); } } private void prepareCompiler(boolean forParse) { if (used.getAndSet(true)) {
< prev index next >