langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java Wed Jul 05 20:06:12 2017 +0200
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java Thu Oct 30 16:08:43 2014 -0700
@@ -25,6 +25,7 @@
package com.sun.tools.javac.api;
+import java.io.IOException;
import java.nio.CharBuffer;
import java.util.*;
import java.util.concurrent.Callable;
@@ -67,6 +68,7 @@
public class JavacTaskImpl extends BasicJavacTask {
private final Arguments args;
private JavaCompiler compiler;
+ private JavaFileManager fileManager;
private Locale locale;
private Map<JavaFileObject, JCCompilationUnit> notYetEntered;
private ListBuffer<Env<AttrContext>> genList;
@@ -76,6 +78,7 @@
JavacTaskImpl(Context context) {
super(context, true);
args = Arguments.instance(context);
+ fileManager = context.get(JavaFileManager.class);
}
@Override @DefinedBy(Api.COMPILER)
@@ -202,6 +205,12 @@
void cleanup() {
if (compiler != null)
compiler.close();
+ if (fileManager instanceof BaseFileManager && ((BaseFileManager) fileManager).autoClose) {
+ try {
+ fileManager.close();
+ } catch (IOException ignore) {
+ }
+ }
compiler = null;
context = null;
notYetEntered = null;