src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java

changeset 1096
b0d5f00e69f7
parent 1054
111bbf1ad913
child 1113
d346ab55031b
     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) {

mercurial