equal
deleted
inserted
replaced
86 * In API mode, exceptions thrown while calling the doclet are |
86 * In API mode, exceptions thrown while calling the doclet are |
87 * propagated using ClientCodeException. |
87 * propagated using ClientCodeException. |
88 */ |
88 */ |
89 private boolean apiMode; |
89 private boolean apiMode; |
90 |
90 |
|
91 private JavaFileManager fileManager; |
|
92 private boolean closeFileManagerOnExit; |
|
93 |
91 Start(String programName, |
94 Start(String programName, |
92 PrintWriter errWriter, |
95 PrintWriter errWriter, |
93 PrintWriter warnWriter, |
96 PrintWriter warnWriter, |
94 PrintWriter noticeWriter, |
97 PrintWriter noticeWriter, |
95 String defaultDocletClassName) { |
98 String defaultDocletClassName) { |
237 } catch (Exception ee) { |
240 } catch (Exception ee) { |
238 ee.printStackTrace(System.err); |
241 ee.printStackTrace(System.err); |
239 messager.error(Messager.NOPOS, "main.fatal.exception"); |
242 messager.error(Messager.NOPOS, "main.fatal.exception"); |
240 failed = true; |
243 failed = true; |
241 } finally { |
244 } finally { |
|
245 if (fileManager != null && closeFileManagerOnExit) { |
|
246 try { |
|
247 fileManager.close(); |
|
248 } catch (IOException ignore) { |
|
249 } |
|
250 } |
242 messager.exitNotice(); |
251 messager.exitNotice(); |
243 messager.flush(); |
252 messager.flush(); |
244 } |
253 } |
245 failed |= messager.nerrors() > 0; |
254 failed |= messager.nerrors() > 0; |
246 failed |= rejectWarnings && messager.nwarnings() > 0; |
255 failed |= rejectWarnings && messager.nwarnings() > 0; |
268 e.printStackTrace(System.err); |
277 e.printStackTrace(System.err); |
269 exit(); |
278 exit(); |
270 } |
279 } |
271 |
280 |
272 |
281 |
273 JavaFileManager fileManager = context.get(JavaFileManager.class); |
282 fileManager = context.get(JavaFileManager.class); |
|
283 |
274 setDocletInvoker(docletClass, fileManager, argv); |
284 setDocletInvoker(docletClass, fileManager, argv); |
275 |
285 |
276 compOpts = Options.instance(context); |
286 compOpts = Options.instance(context); |
277 // Make sure no obsolete source/target messages are reported |
287 // Make sure no obsolete source/target messages are reported |
278 compOpts.put("-Xlint:-options", "-Xlint:-options"); |
288 compOpts.put("-Xlint:-options", "-Xlint:-options"); |
331 } |
341 } |
332 |
342 |
333 if (fileManager == null) { |
343 if (fileManager == null) { |
334 JavacFileManager.preRegister(context); |
344 JavacFileManager.preRegister(context); |
335 fileManager = context.get(JavaFileManager.class); |
345 fileManager = context.get(JavaFileManager.class); |
|
346 closeFileManagerOnExit = true; |
336 } |
347 } |
337 if (fileManager instanceof BaseFileManager) { |
348 if (fileManager instanceof BaseFileManager) { |
338 ((BaseFileManager) fileManager).handleOptions(fileManagerOpts); |
349 ((BaseFileManager) fileManager).handleOptions(fileManagerOpts); |
339 } |
350 } |
340 |
351 |