langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Wed Jan 23 20:57:40 2013 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Wed Jan 23 13:27:24 2013 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -817,9 +817,6 @@
/** The set of package-info files to be processed this round. */
List<PackageSymbol> packageInfoFiles;
- /** The number of Messager errors generated in this round. */
- int nMessagerErrors;
-
/** Create a round (common code). */
private Round(Context context, int number, int priorErrors, int priorWarnings,
Log.DeferredDiagnosticHandler deferredDiagnosticHandler) {
@@ -829,7 +826,7 @@
compiler = JavaCompiler.instance(context);
log = Log.instance(context);
log.nerrors = priorErrors;
- log.nwarnings += priorWarnings;
+ log.nwarnings = priorWarnings;
if (number == 1) {
Assert.checkNonNull(deferredDiagnosticHandler);
this.deferredDiagnosticHandler = deferredDiagnosticHandler;
@@ -870,7 +867,7 @@
Set<JavaFileObject> newSourceFiles, Map<String,JavaFileObject> newClassFiles) {
this(prev.nextContext(),
prev.number+1,
- prev.nMessagerErrors,
+ prev.compiler.log.nerrors,
prev.compiler.log.nwarnings,
null);
this.genClassFiles = prev.genClassFiles;
@@ -911,15 +908,12 @@
}
/** Create the compiler to be used for the final compilation. */
- JavaCompiler finalCompiler(boolean errorStatus) {
+ JavaCompiler finalCompiler() {
try {
Context nextCtx = nextContext();
JavacProcessingEnvironment.this.context = nextCtx;
JavaCompiler c = JavaCompiler.instance(nextCtx);
- c.log.nwarnings += compiler.log.nwarnings;
- if (errorStatus) {
- c.log.nerrors += compiler.log.nerrors;
- }
+ c.log.initRound(compiler.log);
return c;
} finally {
compiler.close(false);
@@ -1027,8 +1021,6 @@
if (!taskListener.isEmpty())
taskListener.finished(new TaskEvent(TaskEvent.Kind.ANNOTATION_PROCESSING_ROUND));
}
-
- nMessagerErrors = messager.errorCount();
}
void showDiagnostics(boolean showAll) {
@@ -1107,9 +1099,7 @@
next.put(Tokens.tokensKey, tokens);
Log nextLog = Log.instance(next);
- // propogate the log's writers directly, instead of going through context
- nextLog.setWriters(log);
- nextLog.setSourceMap(log);
+ nextLog.initRound(log);
JavaCompiler oldCompiler = JavaCompiler.instance(context);
JavaCompiler nextCompiler = JavaCompiler.instance(next);
@@ -1206,7 +1196,7 @@
new LinkedHashSet<JavaFileObject>(filer.getGeneratedSourceFileObjects());
roots = cleanTrees(round.roots);
- JavaCompiler compiler = round.finalCompiler(errorStatus);
+ JavaCompiler compiler = round.finalCompiler();
if (newSourceFiles.size() > 0)
roots = roots.appendList(compiler.parseFiles(newSourceFiles));
@@ -1311,7 +1301,6 @@
if (procNames != null)
return true;
- String procPath;
URL[] urls = new URL[1];
for(File pathElement : workingpath) {
try {
@@ -1382,6 +1371,10 @@
node.sym = null;
super.visitIdent(node);
}
+ public void visitAnnotation(JCAnnotation node) {
+ node.attribute = null;
+ super.visitAnnotation(node);
+ }
};