langtools/src/share/classes/com/sun/tools/javadoc/DocletInvoker.java
changeset 22159 682da512ec17
parent 14545 2e7bab0639b8
equal deleted inserted replaced
22158:dca1b80ed62c 22159:682da512ec17
   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");