< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
Print this page
rev 48841 : imported patch 8187950
*** 50,59 ****
--- 50,60 ----
import static javax.tools.StandardLocation.*;
import com.sun.source.util.TaskEvent;
import com.sun.tools.javac.api.MultiTaskListener;
import com.sun.tools.javac.code.*;
+ import com.sun.tools.javac.code.DeferredCompletionFailureHandler.Handler;
import com.sun.tools.javac.code.Scope.WriteableScope;
import com.sun.tools.javac.code.Source.Feature;
import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.code.Type.ClassType;
import com.sun.tools.javac.code.Types;
*** 175,184 ****
--- 176,186 ----
*/
private JavacMessages messages;
private MultiTaskListener taskListener;
private final Symtab symtab;
+ private final DeferredCompletionFailureHandler dcfh;
private final Names names;
private final Enter enter;
private final Completer initialCompleter;
private final Check chk;
*** 225,234 ****
--- 227,237 ----
processorOptions = initProcessorOptions();
unmatchedProcessorOptions = initUnmatchedProcessorOptions();
messages = JavacMessages.instance(context);
taskListener = MultiTaskListener.instance(context);
symtab = Symtab.instance(context);
+ dcfh = DeferredCompletionFailureHandler.instance(context);
names = Names.instance(context);
enter = Enter.instance(context);
initialCompleter = ClassFinder.instance(context).getCompleter();
chk = Check.instance(context);
initProcessorLoader();
*** 957,966 ****
--- 960,970 ----
}
private boolean callProcessor(Processor proc,
Set<? extends TypeElement> tes,
RoundEnvironment renv) {
+ Handler prevDeferredHandler = dcfh.setHandler(dcfh.userCodeHandler);
try {
return proc.process(tes, renv);
} catch (ClassFinder.BadClassFile ex) {
log.error(Errors.ProcCantAccess1(ex.sym, ex.getDetailValue()));
return false;
*** 971,980 ****
--- 975,986 ----
return false;
} catch (ClientCodeException e) {
throw e;
} catch (Throwable t) {
throw new AnnotationProcessingError(t);
+ } finally {
+ dcfh.setHandler(prevDeferredHandler);
}
}
/**
* Helper object for a single round of annotation processing.
< prev index next >