208 Object retVal; |
208 Object retVal; |
209 String methodName = "optionLength"; |
209 String methodName = "optionLength"; |
210 Class<?>[] paramTypes = { String.class }; |
210 Class<?>[] paramTypes = { String.class }; |
211 Object[] params = { option }; |
211 Object[] params = { option }; |
212 try { |
212 try { |
213 retVal = invoke(methodName, new Integer(0), paramTypes, params); |
213 retVal = invoke(methodName, 0, paramTypes, params); |
214 } catch (DocletInvokeException exc) { |
214 } catch (DocletInvokeException exc) { |
215 return -1; |
215 return -1; |
216 } |
216 } |
217 if (retVal instanceof Integer) { |
217 if (retVal instanceof Integer) { |
218 return ((Integer)retVal).intValue(); |
218 return ((Integer)retVal).intValue(); |
306 Thread.currentThread().getContextClassLoader(); |
306 Thread.currentThread().getContextClassLoader(); |
307 try { |
307 try { |
308 if (appClassLoader != null) // will be null if doclet class provided via API |
308 if (appClassLoader != null) // will be null if doclet class provided via API |
309 Thread.currentThread().setContextClassLoader(appClassLoader); |
309 Thread.currentThread().setContextClassLoader(appClassLoader); |
310 return meth.invoke(null , params); |
310 return meth.invoke(null , params); |
311 } catch (IllegalArgumentException exc) { |
311 } catch (IllegalArgumentException | NullPointerException exc) { |
312 messager.error(Messager.NOPOS, "main.internal_error_exception_thrown", |
312 messager.error(Messager.NOPOS, "main.internal_error_exception_thrown", |
313 docletClassName, methodName, exc.toString()); |
313 docletClassName, methodName, exc.toString()); |
314 throw new DocletInvokeException(); |
314 throw new DocletInvokeException(); |
315 } catch (IllegalAccessException exc) { |
315 } catch (IllegalAccessException exc) { |
316 messager.error(Messager.NOPOS, "main.doclet_method_not_accessible", |
316 messager.error(Messager.NOPOS, "main.doclet_method_not_accessible", |
317 docletClassName, methodName); |
317 docletClassName, methodName); |
318 throw new DocletInvokeException(); |
318 throw new DocletInvokeException(); |
319 } catch (NullPointerException exc) { |
319 } |
320 messager.error(Messager.NOPOS, "main.internal_error_exception_thrown", |
320 catch (InvocationTargetException exc) { |
321 docletClassName, methodName, exc.toString()); |
|
322 throw new DocletInvokeException(); |
|
323 } catch (InvocationTargetException exc) { |
|
324 Throwable err = exc.getTargetException(); |
321 Throwable err = exc.getTargetException(); |
325 if (apiMode) |
322 if (apiMode) |
326 throw new ClientCodeException(err); |
323 throw new ClientCodeException(err); |
327 if (err instanceof java.lang.OutOfMemoryError) { |
324 if (err instanceof java.lang.OutOfMemoryError) { |
328 messager.error(Messager.NOPOS, "main.out.of.memory"); |
325 messager.error(Messager.NOPOS, "main.out.of.memory"); |