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; |