1.1 --- a/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Tue Sep 20 12:08:48 2011 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Wed Sep 21 21:56:53 2011 -0700 1.3 @@ -225,6 +225,11 @@ 1.4 ? fileManager.getClassLoader(ANNOTATION_PROCESSOR_PATH) 1.5 : fileManager.getClassLoader(CLASS_PATH); 1.6 1.7 + if (processorClassLoader != null && processorClassLoader instanceof Closeable) { 1.8 + JavaCompiler compiler = JavaCompiler.instance(context); 1.9 + compiler.closeables = compiler.closeables.prepend((Closeable) processorClassLoader); 1.10 + } 1.11 + 1.12 /* 1.13 * If the "-processor" option is used, search the appropriate 1.14 * path for the named class. Otherwise, use a service 1.15 @@ -1211,14 +1216,6 @@ 1.16 if (discoveredProcs != null) // Make calling close idempotent 1.17 discoveredProcs.close(); 1.18 discoveredProcs = null; 1.19 - if (processorClassLoader != null && processorClassLoader instanceof Closeable) { 1.20 - try { 1.21 - ((Closeable) processorClassLoader).close(); 1.22 - } catch (IOException e) { 1.23 - JCDiagnostic msg = diags.fragment("fatal.err.cant.close.loader"); 1.24 - throw new FatalError(msg, e); 1.25 - } 1.26 - } 1.27 } 1.28 1.29 private List<ClassSymbol> getTopLevelClasses(List<? extends JCCompilationUnit> units) {