Mercurial > hg > jdk9-shenandoah > langtools
changeset 2688:b0b7c051d199
8062504: javadoc Start does not close file managers that it opens
Reviewed-by: ksrini
author | jjg |
---|---|
date | Wed, 29 Oct 2014 18:01:22 -0700 |
parents | 56f8be952a5c |
children | f839b50088bc |
files | src/jdk.javadoc/share/classes/com/sun/tools/javadoc/Start.java |
diffstat | 1 files changed, 12 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/Start.java Wed Oct 29 17:25:23 2014 -0700 +++ b/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/Start.java Wed Oct 29 18:01:22 2014 -0700 @@ -88,6 +88,9 @@ */ private boolean apiMode; + private JavaFileManager fileManager; + private boolean closeFileManagerOnExit; + Start(String programName, PrintWriter errWriter, PrintWriter warnWriter, @@ -239,6 +242,12 @@ messager.error(Messager.NOPOS, "main.fatal.exception"); failed = true; } finally { + if (fileManager != null && closeFileManagerOnExit) { + try { + fileManager.close(); + } catch (IOException ignore) { + } + } messager.exitNotice(); messager.flush(); } @@ -270,7 +279,8 @@ } - JavaFileManager fileManager = context.get(JavaFileManager.class); + fileManager = context.get(JavaFileManager.class); + setDocletInvoker(docletClass, fileManager, argv); compOpts = Options.instance(context); @@ -333,6 +343,7 @@ if (fileManager == null) { JavacFileManager.preRegister(context); fileManager = context.get(JavaFileManager.class); + closeFileManagerOnExit = true; } if (fileManager instanceof BaseFileManager) { ((BaseFileManager) fileManager).handleOptions(fileManagerOpts);