langtools/src/share/classes/com/sun/tools/javap/JavapTask.java
changeset 3784 182e4a28c0ce
parent 3548 fd92f0d28cb9
child 3890 b53fced26fa4
equal deleted inserted replaced
3783:f1aefacd7231 3784:182e4a28c0ce
   453                     return EXIT_OK;
   453                     return EXIT_OK;
   454                 else
   454                 else
   455                     return EXIT_CMDERR;
   455                     return EXIT_CMDERR;
   456             }
   456             }
   457 
   457 
   458             boolean ok = run();
   458             try {
   459             return ok ? EXIT_OK : EXIT_ERROR;
   459                 boolean ok = run();
       
   460                 return ok ? EXIT_OK : EXIT_ERROR;
       
   461             } finally {
       
   462                 if (defaultFileManager != null) {
       
   463                     try {
       
   464                         defaultFileManager.close();
       
   465                         defaultFileManager = null;
       
   466                     } catch (IOException e) {
       
   467                         throw new InternalError(e);
       
   468                     }
       
   469                 }
       
   470             }
   460         } catch (BadArgs e) {
   471         } catch (BadArgs e) {
   461             reportError(e.key, e.args);
   472             reportError(e.key, e.args);
   462             if (e.showUsage) {
   473             if (e.showUsage) {
   463                 log.println(getMessage("main.usage.summary", progname));
   474                 log.println(getMessage("main.usage.summary", progname));
   464             }
   475             }
   854         ClassWriter classWriter = ClassWriter.instance(context);
   865         ClassWriter classWriter = ClassWriter.instance(context);
   855         classWriter.writeMethod(value);
   866         classWriter.writeMethod(value);
   856     }
   867     }
   857 
   868 
   858     private JavaFileManager getDefaultFileManager(final DiagnosticListener<? super JavaFileObject> dl, PrintWriter log) {
   869     private JavaFileManager getDefaultFileManager(final DiagnosticListener<? super JavaFileObject> dl, PrintWriter log) {
   859         return JavapFileManager.create(dl, log);
   870         if (defaultFileManager == null)
       
   871             defaultFileManager = JavapFileManager.create(dl, log);
       
   872         return defaultFileManager;
   860     }
   873     }
   861 
   874 
   862     private JavaFileObject getClassFileObject(String className) throws IOException {
   875     private JavaFileObject getClassFileObject(String className) throws IOException {
   863         JavaFileObject fo;
   876         JavaFileObject fo;
   864         fo = fileManager.getJavaFileForInput(StandardLocation.PLATFORM_CLASS_PATH, className, JavaFileObject.Kind.CLASS);
   877         fo = fileManager.getJavaFileForInput(StandardLocation.PLATFORM_CLASS_PATH, className, JavaFileObject.Kind.CLASS);
  1002         }
  1015         }
  1003     }
  1016     }
  1004 
  1017 
  1005     protected Context context;
  1018     protected Context context;
  1006     JavaFileManager fileManager;
  1019     JavaFileManager fileManager;
       
  1020     JavaFileManager defaultFileManager;
  1007     PrintWriter log;
  1021     PrintWriter log;
  1008     DiagnosticListener<? super JavaFileObject> diagnosticListener;
  1022     DiagnosticListener<? super JavaFileObject> diagnosticListener;
  1009     List<String> classes;
  1023     List<String> classes;
  1010     Options options;
  1024     Options options;
  1011     //ResourceBundle bundle;
  1025     //ResourceBundle bundle;