1.1 --- a/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Fri Oct 04 13:41:13 2013 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Fri Oct 04 13:59:13 2013 -0700 1.3 @@ -1034,6 +1034,13 @@ 1.4 } else { 1.5 discoverAndRunProcs(context, annotationsPresent, topLevelClasses, packageInfoFiles); 1.6 } 1.7 + } catch (Throwable t) { 1.8 + // we're specifically expecting Abort here, but if any Throwable 1.9 + // comes by, we should flush all deferred diagnostics, rather than 1.10 + // drop them on the ground. 1.11 + deferredDiagnosticHandler.reportDeferredDiagnostics(); 1.12 + log.popDiagnosticHandler(deferredDiagnosticHandler); 1.13 + throw t; 1.14 } finally { 1.15 if (!taskListener.isEmpty()) 1.16 taskListener.finished(new TaskEvent(TaskEvent.Kind.ANNOTATION_PROCESSING_ROUND));