src/share/classes/com/sun/tools/javap/JavapTask.java

changeset 402
261c54b2312e
parent 350
526de25e0b28
child 404
14735c7932d7
     1.1 --- a/src/share/classes/com/sun/tools/javap/JavapTask.java	Tue Sep 08 11:29:58 2009 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javap/JavapTask.java	Tue Sep 08 11:43:57 2009 -0700
     1.3 @@ -455,8 +455,19 @@
     1.4                      return EXIT_CMDERR;
     1.5              }
     1.6  
     1.7 -            boolean ok = run();
     1.8 -            return ok ? EXIT_OK : EXIT_ERROR;
     1.9 +            try {
    1.10 +                boolean ok = run();
    1.11 +                return ok ? EXIT_OK : EXIT_ERROR;
    1.12 +            } finally {
    1.13 +                if (defaultFileManager != null) {
    1.14 +                    try {
    1.15 +                        defaultFileManager.close();
    1.16 +                        defaultFileManager = null;
    1.17 +                    } catch (IOException e) {
    1.18 +                        throw new InternalError(e);
    1.19 +                    }
    1.20 +                }
    1.21 +            }
    1.22          } catch (BadArgs e) {
    1.23              reportError(e.key, e.args);
    1.24              if (e.showUsage) {
    1.25 @@ -856,7 +867,9 @@
    1.26      }
    1.27  
    1.28      private JavaFileManager getDefaultFileManager(final DiagnosticListener<? super JavaFileObject> dl, PrintWriter log) {
    1.29 -        return JavapFileManager.create(dl, log);
    1.30 +        if (defaultFileManager == null)
    1.31 +            defaultFileManager = JavapFileManager.create(dl, log);
    1.32 +        return defaultFileManager;
    1.33      }
    1.34  
    1.35      private JavaFileObject getClassFileObject(String className) throws IOException {
    1.36 @@ -1004,6 +1017,7 @@
    1.37  
    1.38      protected Context context;
    1.39      JavaFileManager fileManager;
    1.40 +    JavaFileManager defaultFileManager;
    1.41      PrintWriter log;
    1.42      DiagnosticListener<? super JavaFileObject> diagnosticListener;
    1.43      List<String> classes;

mercurial