public class com.sun.tools.javadoc.main.DocletInvoker
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javadoc.main.DocletInvoker
  super_class: java.lang.Object
{
  private final java.lang.Class<?> docletClass;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<*>;

  private final java.lang.String docletClassName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ClassLoader appClassLoader;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javadoc.main.Messager messager;
    descriptor: Lcom/sun/tools/javadoc/main/Messager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean apiMode;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean exportInternalAPI;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String appendPath(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // java.lang.String path1
        start local 2 // java.lang.String path2
         0: .line 87
            aload 1 /* path1 */
            ifnull 1
            aload 1 /* path1 */
            invokevirtual java.lang.String.length:()I
            ifne 4
         1: .line 88
      StackMap locals:
      StackMap stack:
            aload 2 /* path2 */
            ifnonnull 2
            ldc "."
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 2 /* path2 */
      StackMap locals:
      StackMap stack: java.lang.String
         3: areturn
         4: .line 89
      StackMap locals:
      StackMap stack:
            aload 2 /* path2 */
            ifnull 5
            aload 2 /* path2 */
            invokevirtual java.lang.String.length:()I
            ifne 6
         5: .line 90
      StackMap locals:
      StackMap stack:
            aload 1 /* path1 */
            areturn
         6: .line 92
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 1 /* path1 */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* path2 */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String path2
        end local 1 // java.lang.String path1
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0    7     1  path1  Ljava/lang/String;
            0    7     2  path2  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      path1  
      path2  

  public void <init>(com.sun.tools.javadoc.main.Messager, java.lang.Class<?>, boolean, );
    descriptor: (Lcom/sun/tools/javadoc/main/Messager;Ljava/lang/Class;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // com.sun.tools.javadoc.main.Messager messager
        start local 2 // java.lang.Class docletClass
        start local 3 // boolean apiMode
        start local 4 // boolean exportInternalAPI
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 97
            aload 0 /* this */
            aload 1 /* messager */
            putfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
         2: .line 98
            aload 0 /* this */
            aload 2 /* docletClass */
            putfield com.sun.tools.javadoc.main.DocletInvoker.docletClass:Ljava/lang/Class;
         3: .line 99
            aload 0 /* this */
            aload 2 /* docletClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            putfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
         4: .line 100
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
         5: .line 101
            aload 0 /* this */
            iload 3 /* apiMode */
            putfield com.sun.tools.javadoc.main.DocletInvoker.apiMode:Z
         6: .line 102
            aload 0 /* this */
            iload 4 /* exportInternalAPI */
            putfield com.sun.tools.javadoc.main.DocletInvoker.exportInternalAPI:Z
         7: .line 105
            iload 4 /* exportInternalAPI */
            ifeq 9
         8: .line 106
            aload 0 /* this */
            aload 2 /* docletClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.exportInternalAPI:(Ljava/lang/ClassLoader;)V
         9: .line 108
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker com.sun.tools.javadoc.main.Messager java.lang.Class int int
      StackMap stack:
            return
        end local 4 // boolean exportInternalAPI
        end local 3 // boolean apiMode
        end local 2 // java.lang.Class docletClass
        end local 1 // com.sun.tools.javadoc.main.Messager messager
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   10     1           messager  Lcom/sun/tools/javadoc/main/Messager;
            0   10     2        docletClass  Ljava/lang/Class<*>;
            0   10     3            apiMode  Z
            0   10     4  exportInternalAPI  Z
    Signature: (Lcom/sun/tools/javadoc/main/Messager;Ljava/lang/Class<*>;ZZ)V
    MethodParameters:
                   Name  Flags
      messager           
      docletClass        
      apiMode            
      exportInternalAPI  

  public void <init>(com.sun.tools.javadoc.main.Messager, javax.tools.JavaFileManager, java.lang.String, java.lang.String, java.lang.ClassLoader, boolean, boolean);
    descriptor: (Lcom/sun/tools/javadoc/main/Messager;Ljavax/tools/JavaFileManager;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=8
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // com.sun.tools.javadoc.main.Messager messager
        start local 2 // javax.tools.JavaFileManager fileManager
        start local 3 // java.lang.String docletClassName
        start local 4 // java.lang.String docletPath
        start local 5 // java.lang.ClassLoader docletParentClassLoader
        start local 6 // boolean apiMode
        start local 7 // boolean exportInternalAPI
         0: .line 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 115
            aload 0 /* this */
            aload 1 /* messager */
            putfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
         2: .line 116
            aload 0 /* this */
            aload 3 /* docletClassName */
            putfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
         3: .line 117
            aload 0 /* this */
            iload 6 /* apiMode */
            putfield com.sun.tools.javadoc.main.DocletInvoker.apiMode:Z
         4: .line 118
            aload 0 /* this */
            iload 7 /* exportInternalAPI */
            putfield com.sun.tools.javadoc.main.DocletInvoker.exportInternalAPI:Z
         5: .line 120
            aload 2 /* fileManager */
            ifnull 8
            aload 2 /* fileManager */
            getstatic javax.tools.DocumentationTool$Location.DOCLET_PATH:Ljavax/tools/DocumentationTool$Location;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ifeq 8
         6: .line 121
            aload 0 /* this */
            aload 2 /* fileManager */
            getstatic javax.tools.DocumentationTool$Location.DOCLET_PATH:Ljavax/tools/DocumentationTool$Location;
            invokeinterface javax.tools.JavaFileManager.getClassLoader:(Ljavax/tools/JavaFileManager$Location;)Ljava/lang/ClassLoader;
            putfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
         7: .line 122
            goto 16
         8: .line 124
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker com.sun.tools.javadoc.main.Messager javax.tools.JavaFileManager java.lang.String java.lang.String java.lang.ClassLoader int int
      StackMap stack:
            aconst_null
            astore 8 /* cpString */
        start local 8 // java.lang.String cpString
         9: .line 127
            aload 0 /* this */
            ldc "env.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            aload 8 /* cpString */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.appendPath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* cpString */
        10: .line 128
            aload 0 /* this */
            ldc "java.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            aload 8 /* cpString */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.appendPath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* cpString */
        11: .line 129
            aload 0 /* this */
            aload 4 /* docletPath */
            aload 8 /* cpString */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.appendPath:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* cpString */
        12: .line 130
            aload 8 /* cpString */
            invokestatic com.sun.tools.javadoc.main.DocletInvoker.pathToURLs:(Ljava/lang/String;)[Ljava/net/URL;
            astore 9 /* urls */
        start local 9 // java.net.URL[] urls
        13: .line 131
            aload 5 /* docletParentClassLoader */
            ifnonnull 15
        14: .line 132
            aload 0 /* this */
            new java.net.URLClassLoader
            dup
            aload 9 /* urls */
            aload 0 /* this */
            aload 3 /* docletClassName */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.getDelegationClassLoader:(Ljava/lang/String;)Ljava/lang/ClassLoader;
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            putfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
            goto 16
        15: .line 134
      StackMap locals: java.lang.String java.net.URL[]
      StackMap stack:
            aload 0 /* this */
            new java.net.URLClassLoader
            dup
            aload 9 /* urls */
            aload 5 /* docletParentClassLoader */
            invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
            putfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
        end local 9 // java.net.URL[] urls
        end local 8 // java.lang.String cpString
        16: .line 137
      StackMap locals:
      StackMap stack:
            iload 7 /* exportInternalAPI */
            ifeq 18
        17: .line 138
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.exportInternalAPI:(Ljava/lang/ClassLoader;)V
        18: .line 142
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* dc */
        start local 8 // java.lang.Class dc
        19: .line 144
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
            aload 3 /* docletClassName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 8 /* dc */
        20: .line 145
            goto 24
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker com.sun.tools.javadoc.main.Messager javax.tools.JavaFileManager java.lang.String java.lang.String java.lang.ClassLoader int int java.lang.Class
      StackMap stack: java.lang.ClassNotFoundException
        21: pop
        22: .line 146
            aload 1 /* messager */
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.doclet_class_not_found"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* docletClassName */
            aastore
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        23: .line 147
            aload 1 /* messager */
            invokevirtual com.sun.tools.javadoc.main.Messager.exit:()V
        24: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* dc */
            putfield com.sun.tools.javadoc.main.DocletInvoker.docletClass:Ljava/lang/Class;
        25: .line 150
            return
        end local 8 // java.lang.Class dc
        end local 7 // boolean exportInternalAPI
        end local 6 // boolean apiMode
        end local 5 // java.lang.ClassLoader docletParentClassLoader
        end local 4 // java.lang.String docletPath
        end local 3 // java.lang.String docletClassName
        end local 2 // javax.tools.JavaFileManager fileManager
        end local 1 // com.sun.tools.javadoc.main.Messager messager
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   26     0                     this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   26     1                 messager  Lcom/sun/tools/javadoc/main/Messager;
            0   26     2              fileManager  Ljavax/tools/JavaFileManager;
            0   26     3          docletClassName  Ljava/lang/String;
            0   26     4               docletPath  Ljava/lang/String;
            0   26     5  docletParentClassLoader  Ljava/lang/ClassLoader;
            0   26     6                  apiMode  Z
            0   26     7        exportInternalAPI  Z
            9   16     8                 cpString  Ljava/lang/String;
           13   16     9                     urls  [Ljava/net/URL;
           19   26     8                       dc  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
          19    20      21  Class java.lang.ClassNotFoundException
    MethodParameters:
                         Name  Flags
      messager                 
      fileManager              
      docletClassName          
      docletPath               
      docletParentClassLoader  
      apiMode                  
      exportInternalAPI        

  private java.lang.ClassLoader getDelegationClassLoader(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // java.lang.String docletClassName
         0: .line 169
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* ctxCL */
        start local 2 // java.lang.ClassLoader ctxCL
         1: .line 170
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* sysCL */
        start local 3 // java.lang.ClassLoader sysCL
         2: .line 171
            aload 3 /* sysCL */
            ifnonnull 4
         3: .line 172
            aload 2 /* ctxCL */
            areturn
         4: .line 173
      StackMap locals: java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack:
            aload 2 /* ctxCL */
            ifnonnull 6
         5: .line 174
            aload 3 /* sysCL */
            areturn
         6: .line 178
      StackMap locals:
      StackMap stack:
            aload 3 /* sysCL */
            aload 1 /* docletClassName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            pop
         7: .line 180
            aload 2 /* ctxCL */
            aload 1 /* docletClassName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            pop
         8: .line 181
            goto 13
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         9: pop
        10: .line 182
            aload 3 /* sysCL */
        11: areturn
        12: .line 184
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        13: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 3 /* sysCL */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            if_acmpne 21
        14: .line 191
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* ctxCL */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            if_acmpeq 21
        15: .line 192
            aload 3 /* sysCL */
        16: areturn
        17: .line 193
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        18: .line 194
            aload 3 /* sysCL */
        19: areturn
        20: .line 197
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        21: .line 200
      StackMap locals:
      StackMap stack:
            aload 2 /* ctxCL */
            areturn
        end local 3 // java.lang.ClassLoader sysCL
        end local 2 // java.lang.ClassLoader ctxCL
        end local 1 // java.lang.String docletClassName
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   22     0             this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   22     1  docletClassName  Ljava/lang/String;
            1   22     2            ctxCL  Ljava/lang/ClassLoader;
            2   22     3            sysCL  Ljava/lang/ClassLoader;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.ClassNotFoundException
           6    11      12  Class java.lang.ClassNotFoundException
          14    16      17  Class java.lang.ClassNotFoundException
          13    16      20  Class java.lang.ClassNotFoundException
          17    19      20  Class java.lang.ClassNotFoundException
    MethodParameters:
                 Name  Flags
      docletClassName  

  public boolean start(com.sun.javadoc.RootDoc);
    descriptor: (Lcom/sun/javadoc/RootDoc;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // com.sun.javadoc.RootDoc root
         0: .line 208
            ldc "start"
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         1: .line 209
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lcom/sun/javadoc/RootDoc;
            aastore
            astore 4 /* paramTypes */
        start local 4 // java.lang.Class[] paramTypes
         2: .line 210
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* root */
            aastore
            astore 5 /* params */
        start local 5 // java.lang.Object[] params
         3: .line 212
            aload 0 /* this */
            aload 3 /* methodName */
            aconst_null
            aload 4 /* paramTypes */
            aload 5 /* params */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.invoke:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* retVal */
        start local 2 // java.lang.Object retVal
         4: .line 213
            goto 7
        end local 2 // java.lang.Object retVal
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker com.sun.javadoc.RootDoc top java.lang.String java.lang.Class[] java.lang.Object[]
      StackMap stack: com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
         5: pop
         6: .line 214
            iconst_0
            ireturn
        start local 2 // java.lang.Object retVal
         7: .line 216
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker com.sun.javadoc.RootDoc java.lang.Object java.lang.String java.lang.Class[] java.lang.Object[]
      StackMap stack:
            aload 2 /* retVal */
            instanceof java.lang.Boolean
            ifeq 9
         8: .line 217
            aload 2 /* retVal */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         9: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.must_return_boolean"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 220
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* methodName */
            aastore
        11: .line 219
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 221
            iconst_0
            ireturn
        end local 5 // java.lang.Object[] params
        end local 4 // java.lang.Class[] paramTypes
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.Object retVal
        end local 1 // com.sun.javadoc.RootDoc root
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   13     1        root  Lcom/sun/javadoc/RootDoc;
            4    5     2      retVal  Ljava/lang/Object;
            7   13     2      retVal  Ljava/lang/Object;
            1   13     3  methodName  Ljava/lang/String;
            2   13     4  paramTypes  [Ljava/lang/Class;
            3   13     5      params  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           3     4       5  Class com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
    MethodParameters:
      Name  Flags
      root  

  public int optionLength(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // java.lang.String option
         0: .line 232
            ldc "optionLength"
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         1: .line 233
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            astore 4 /* paramTypes */
        start local 4 // java.lang.Class[] paramTypes
         2: .line 234
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* option */
            aastore
            astore 5 /* params */
        start local 5 // java.lang.Object[] params
         3: .line 236
            aload 0 /* this */
            aload 3 /* methodName */
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* paramTypes */
            aload 5 /* params */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.invoke:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* retVal */
        start local 2 // java.lang.Object retVal
         4: .line 237
            goto 7
        end local 2 // java.lang.Object retVal
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker java.lang.String top java.lang.String java.lang.Class[] java.lang.Object[]
      StackMap stack: com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
         5: pop
         6: .line 238
            iconst_m1
            ireturn
        start local 2 // java.lang.Object retVal
         7: .line 240
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker java.lang.String java.lang.Object java.lang.String java.lang.Class[] java.lang.Object[]
      StackMap stack:
            aload 2 /* retVal */
            instanceof java.lang.Integer
            ifeq 9
         8: .line 241
            aload 2 /* retVal */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
         9: .line 243
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.must_return_int"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 244
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* methodName */
            aastore
        11: .line 243
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 245
            iconst_m1
            ireturn
        end local 5 // java.lang.Object[] params
        end local 4 // java.lang.Class[] paramTypes
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.Object retVal
        end local 1 // java.lang.String option
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   13     1      option  Ljava/lang/String;
            4    5     2      retVal  Ljava/lang/Object;
            7   13     2      retVal  Ljava/lang/Object;
            1   13     3  methodName  Ljava/lang/String;
            2   13     4  paramTypes  [Ljava/lang/Class;
            3   13     5      params  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           3     4       5  Class com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
    MethodParameters:
        Name  Flags
      option  

  public boolean validOptions(com.sun.tools.javac.util.List<java.lang.String[]>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // com.sun.tools.javac.util.List optlist
         0: .line 255
            aload 1 /* optlist */
            aload 1 /* optlist */
            invokevirtual com.sun.tools.javac.util.List.length:()I
            anewarray java.lang.String[]
            invokevirtual com.sun.tools.javac.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[][]
            astore 3 /* options */
        start local 3 // java.lang.String[][] options
         1: .line 256
            ldc "validOptions"
            astore 4 /* methodName */
        start local 4 // java.lang.String methodName
         2: .line 257
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            astore 5 /* reporter */
        start local 5 // com.sun.javadoc.DocErrorReporter reporter
         3: .line 258
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc [[Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc Lcom/sun/javadoc/DocErrorReporter;
            aastore
            astore 6 /* paramTypes */
        start local 6 // java.lang.Class[] paramTypes
         4: .line 259
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* options */
            aastore
            dup
            iconst_1
            aload 5 /* reporter */
            aastore
            astore 7 /* params */
        start local 7 // java.lang.Object[] params
         5: .line 261
            aload 0 /* this */
            aload 4 /* methodName */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 6 /* paramTypes */
            aload 7 /* params */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.invoke:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* retVal */
        start local 2 // java.lang.Object retVal
         6: .line 262
            goto 9
        end local 2 // java.lang.Object retVal
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker com.sun.tools.javac.util.List top java.lang.String[][] java.lang.String com.sun.javadoc.DocErrorReporter java.lang.Class[] java.lang.Object[]
      StackMap stack: com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
         7: pop
         8: .line 263
            iconst_0
            ireturn
        start local 2 // java.lang.Object retVal
         9: .line 265
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker com.sun.tools.javac.util.List java.lang.Object java.lang.String[][] java.lang.String com.sun.javadoc.DocErrorReporter java.lang.Class[] java.lang.Object[]
      StackMap stack:
            aload 2 /* retVal */
            instanceof java.lang.Boolean
            ifeq 11
        10: .line 266
            aload 2 /* retVal */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        11: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.must_return_boolean"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 269
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 4 /* methodName */
            aastore
        13: .line 268
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 270
            iconst_0
            ireturn
        end local 7 // java.lang.Object[] params
        end local 6 // java.lang.Class[] paramTypes
        end local 5 // com.sun.javadoc.DocErrorReporter reporter
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String[][] options
        end local 2 // java.lang.Object retVal
        end local 1 // com.sun.tools.javac.util.List optlist
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   15     1     optlist  Lcom/sun/tools/javac/util/List<[Ljava/lang/String;>;
            6    7     2      retVal  Ljava/lang/Object;
            9   15     2      retVal  Ljava/lang/Object;
            1   15     3     options  [[Ljava/lang/String;
            2   15     4  methodName  Ljava/lang/String;
            3   15     5    reporter  Lcom/sun/javadoc/DocErrorReporter;
            4   15     6  paramTypes  [Ljava/lang/Class;
            5   15     7      params  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           5     6       7  Class com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
    Signature: (Lcom/sun/tools/javac/util/List<[Ljava/lang/String;>;)Z
    MethodParameters:
         Name  Flags
      optlist  

  public com.sun.javadoc.LanguageVersion languageVersion();
    descriptor: ()Lcom/sun/javadoc/LanguageVersion;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
         0: .line 281
            ldc "languageVersion"
            astore 2 /* methodName */
        start local 2 // java.lang.String methodName
         1: .line 282
            iconst_0
            anewarray java.lang.Class
            astore 3 /* paramTypes */
        start local 3 // java.lang.Class[] paramTypes
         2: .line 283
            iconst_0
            anewarray java.lang.Object
            astore 4 /* params */
        start local 4 // java.lang.Object[] params
         3: .line 285
            aload 0 /* this */
            aload 2 /* methodName */
            getstatic com.sun.javadoc.LanguageVersion.JAVA_1_1:Lcom/sun/javadoc/LanguageVersion;
            aload 3 /* paramTypes */
            aload 4 /* params */
            invokevirtual com.sun.tools.javadoc.main.DocletInvoker.invoke:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* retVal */
        start local 1 // java.lang.Object retVal
         4: .line 286
            goto 8
        end local 1 // java.lang.Object retVal
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker top java.lang.String java.lang.Class[] java.lang.Object[]
      StackMap stack: com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
         5: pop
         6: .line 287
            getstatic com.sun.javadoc.LanguageVersion.JAVA_1_1:Lcom/sun/javadoc/LanguageVersion;
         7: areturn
        start local 1 // java.lang.Object retVal
         8: .line 289
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker java.lang.Object java.lang.String java.lang.Class[] java.lang.Object[]
      StackMap stack:
            aload 1 /* retVal */
            instanceof com.sun.javadoc.LanguageVersion
            ifeq 11
         9: .line 290
            aload 1 /* retVal */
            checkcast com.sun.javadoc.LanguageVersion
        10: areturn
        11: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.must_return_languageversion"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 293
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* methodName */
            aastore
        13: .line 292
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 294
            getstatic com.sun.javadoc.LanguageVersion.JAVA_1_1:Lcom/sun/javadoc/LanguageVersion;
        15: areturn
        end local 4 // java.lang.Object[] params
        end local 3 // java.lang.Class[] paramTypes
        end local 2 // java.lang.String methodName
        end local 1 // java.lang.Object retVal
        16: .line 296
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker
      StackMap stack: java.lang.NoClassDefFoundError
            pop
        17: .line 297
            aconst_null
            areturn
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            4    5     1      retVal  Ljava/lang/Object;
            8   16     1      retVal  Ljava/lang/Object;
            1   16     2  methodName  Ljava/lang/String;
            2   16     3  paramTypes  [Ljava/lang/Class;
            3   16     4      params  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           3     4       5  Class com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
           0     7      16  Class java.lang.NoClassDefFoundError
           8    10      16  Class java.lang.NoClassDefFoundError
          11    15      16  Class java.lang.NoClassDefFoundError

  private  invoke(java.lang.String, , java.lang.Class<?>[], []);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=5
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // java.lang.String methodName
        start local 2 // java.lang.Object returnValueIfNonExistent
        start local 3 // java.lang.Class[] paramTypes
        start local 4 // java.lang.Object[] params
         0: .line 309
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClass:Ljava/lang/Class;
            aload 1 /* methodName */
            aload 3 /* paramTypes */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 5 /* meth */
        start local 5 // java.lang.reflect.Method meth
         1: .line 310
            goto 14
        end local 5 // java.lang.reflect.Method meth
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
         2: pop
         3: .line 311
            aload 2 /* returnValueIfNonExistent */
            ifnonnull 8
         4: .line 312
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.doclet_method_not_found"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         5: .line 313
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
         6: .line 312
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 314
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
         8: .line 316
      StackMap locals:
      StackMap stack:
            aload 2 /* returnValueIfNonExistent */
            areturn
         9: .line 318
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
        10: .line 319
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.doclet_method_not_accessible"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        11: .line 320
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
        12: .line 319
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        13: .line 321
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
        start local 5 // java.lang.reflect.Method meth
        14: .line 323
      StackMap locals: java.lang.reflect.Method
      StackMap stack:
            aload 5 /* meth */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 19
        15: .line 324
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.doclet_method_must_be_static"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 325
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
        17: .line 324
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        18: .line 326
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
        19: .line 329
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
        20: .line 328
            astore 6 /* savedCCL */
        start local 6 // java.lang.ClassLoader savedCCL
        21: .line 331
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
            ifnull 23
        22: .line 332
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        23: .line 333
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 5 /* meth */
            aconst_null
            aload 4 /* params */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 10
        24: .line 356
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 6 /* savedCCL */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        25: .line 333
            aload 10
            areturn
        26: .line 334
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 7 /* exc */
        start local 7 // java.lang.RuntimeException exc
        27: .line 335
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.internal_error_exception_thrown"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        28: .line 336
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
            dup
            iconst_2
            aload 7 /* exc */
            invokevirtual java.lang.RuntimeException.toString:()Ljava/lang/String;
            aastore
        29: .line 335
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        30: .line 337
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
        end local 7 // java.lang.RuntimeException exc
        31: .line 338
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            pop
        32: .line 339
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.doclet_method_not_accessible"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        33: .line 340
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
        34: .line 339
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        35: .line 341
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
        36: .line 343
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 7 /* exc */
        start local 7 // java.lang.reflect.InvocationTargetException exc
        37: .line 344
            aload 7 /* exc */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 8 /* err */
        start local 8 // java.lang.Throwable err
        38: .line 345
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.apiMode:Z
            ifeq 40
        39: .line 346
            new com.sun.tools.javac.util.ClientCodeException
            dup
            aload 8 /* err */
            invokespecial com.sun.tools.javac.util.ClientCodeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        40: .line 347
      StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack:
            aload 8 /* err */
            instanceof java.lang.OutOfMemoryError
            ifeq 43
        41: .line 348
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.out.of.memory"
            iconst_0
            anewarray java.lang.Object
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        42: .line 349
            goto 47
        43: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
            getstatic com.sun.tools.javadoc.main.Messager.NOPOS:Lcom/sun/javadoc/SourcePosition;
            ldc "main.exception_thrown"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        44: .line 351
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
            dup
            iconst_2
            aload 7 /* exc */
            invokevirtual java.lang.reflect.InvocationTargetException.toString:()Ljava/lang/String;
            aastore
        45: .line 350
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        46: .line 352
            aload 7 /* exc */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
        47: .line 354
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
        end local 8 // java.lang.Throwable err
        end local 7 // java.lang.reflect.InvocationTargetException exc
        48: .line 355
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker java.lang.String java.lang.Object java.lang.Class[] java.lang.Object[] java.lang.reflect.Method java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
            astore 9
        49: .line 356
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 6 /* savedCCL */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        50: .line 357
            aload 9
            athrow
        end local 6 // java.lang.ClassLoader savedCCL
        end local 5 // java.lang.reflect.Method meth
        end local 4 // java.lang.Object[] params
        end local 3 // java.lang.Class[] paramTypes
        end local 2 // java.lang.Object returnValueIfNonExistent
        end local 1 // java.lang.String methodName
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   51     0                      this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   51     1                methodName  Ljava/lang/String;
            0   51     2  returnValueIfNonExistent  Ljava/lang/Object;
            0   51     3                paramTypes  [Ljava/lang/Class;
            0   51     4                    params  [Ljava/lang/Object;
            1    2     5                      meth  Ljava/lang/reflect/Method;
           14   51     5                      meth  Ljava/lang/reflect/Method;
           21   51     6                  savedCCL  Ljava/lang/ClassLoader;
           27   31     7                       exc  Ljava/lang/RuntimeException;
           37   48     7                       exc  Ljava/lang/reflect/InvocationTargetException;
           38   48     8                       err  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NoSuchMethodException
           0     1       9  Class java.lang.SecurityException
          21    24      26  Class java.lang.IllegalArgumentException
          21    24      26  Class java.lang.NullPointerException
          21    24      31  Class java.lang.IllegalAccessException
          21    24      36  Class java.lang.reflect.InvocationTargetException
          21    24      48  any
          26    48      48  any
    Exceptions:
      throws com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
    Signature: (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Class<*>;[Ljava/lang/Object;)Ljava/lang/Object;
    MethodParameters:
                          Name  Flags
      methodName                
      returnValueIfNonExistent  
      paramTypes                
      params                    

  private void exportInternalAPI(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // com.sun.tools.javadoc.main.DocletInvoker this
        start local 1 // java.lang.ClassLoader cl
         0: .line 367
            bipush 9
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 368
            ldc "com.sun.tools.doclets"
            aastore
            dup
            iconst_1
         2: .line 369
            ldc "com.sun.tools.doclets.standard"
            aastore
            dup
            iconst_2
         3: .line 370
            ldc "com.sun.tools.doclets.internal.toolkit"
            aastore
            dup
            iconst_3
         4: .line 371
            ldc "com.sun.tools.doclets.internal.toolkit.taglets"
            aastore
            dup
            iconst_4
         5: .line 372
            ldc "com.sun.tools.doclets.internal.toolkit.builders"
            aastore
            dup
            iconst_5
         6: .line 373
            ldc "com.sun.tools.doclets.internal.toolkit.util"
            aastore
            dup
            bipush 6
         7: .line 374
            ldc "com.sun.tools.doclets.internal.toolkit.util.links"
            aastore
            dup
            bipush 7
         8: .line 375
            ldc "com.sun.tools.doclets.formats.html"
            aastore
            dup
            bipush 8
         9: .line 376
            ldc "com.sun.tools.doclets.formats.html.markup"
            aastore
        10: .line 367
            astore 2 /* packages */
        start local 2 // java.lang.String[] packages
        11: .line 380
            ldc Ljava/lang/Class;
            ldc "getModule"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* getModuleMethod */
        start local 3 // java.lang.reflect.Method getModuleMethod
        12: .line 381
            aload 3 /* getModuleMethod */
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* thisModule */
        start local 4 // java.lang.Object thisModule
        13: .line 383
            ldc "java.lang.Module"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 5 /* moduleClass */
        start local 5 // java.lang.Class moduleClass
        14: .line 384
            aload 5 /* moduleClass */
            ldc "addExports"
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 5 /* moduleClass */
            aastore
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* addExportsMethod */
        start local 6 // java.lang.reflect.Method addExportsMethod
        15: .line 386
            ldc Ljava/lang/ClassLoader;
            ldc "getUnnamedModule"
            iconst_0
            anewarray java.lang.Class
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 7 /* getUnnamedModuleMethod */
        start local 7 // java.lang.reflect.Method getUnnamedModuleMethod
        16: .line 387
            aload 7 /* getUnnamedModuleMethod */
            aload 1 /* cl */
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* target */
        start local 8 // java.lang.Object target
        17: .line 389
            aload 2 /* packages */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 21
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker java.lang.ClassLoader java.lang.String[] java.lang.reflect.Method java.lang.Object java.lang.Class java.lang.reflect.Method java.lang.reflect.Method java.lang.Object top int int java.lang.String[]
      StackMap stack:
        18: aload 12
            iload 10
            aaload
            astore 9 /* pack */
        start local 9 // java.lang.String pack
        19: .line 390
            aload 6 /* addExportsMethod */
            aload 4 /* thisModule */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* pack */
            aastore
            dup
            iconst_1
            aload 8 /* target */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.String pack
        20: .line 389
            iinc 10 1
      StackMap locals:
      StackMap stack:
        21: iload 10
            iload 11
            if_icmplt 18
        end local 8 // java.lang.Object target
        end local 7 // java.lang.reflect.Method getUnnamedModuleMethod
        end local 6 // java.lang.reflect.Method addExportsMethod
        end local 5 // java.lang.Class moduleClass
        end local 4 // java.lang.Object thisModule
        end local 3 // java.lang.reflect.Method getModuleMethod
        22: .line 392
            goto 24
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker java.lang.ClassLoader java.lang.String[]
      StackMap stack: java.lang.Exception
        23: pop
        24: .line 395
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String[] packages
        end local 1 // java.lang.ClassLoader cl
        end local 0 // com.sun.tools.javadoc.main.DocletInvoker this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   25     0                    this  Lcom/sun/tools/javadoc/main/DocletInvoker;
            0   25     1                      cl  Ljava/lang/ClassLoader;
           11   25     2                packages  [Ljava/lang/String;
           12   22     3         getModuleMethod  Ljava/lang/reflect/Method;
           13   22     4              thisModule  Ljava/lang/Object;
           14   22     5             moduleClass  Ljava/lang/Class<*>;
           15   22     6        addExportsMethod  Ljava/lang/reflect/Method;
           16   22     7  getUnnamedModuleMethod  Ljava/lang/reflect/Method;
           17   22     8                  target  Ljava/lang/Object;
           19   20     9                    pack  Ljava/lang/String;
      Exception table:
        from    to  target  type
          11    22      23  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      cl    

  private static java.net.URL[] pathToURLs(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // java.lang.String path
         0: .line 407
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* urls */
        start local 1 // java.util.List urls
         1: .line 408
            aload 0 /* path */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokestatic java.util.regex.Pattern.quote:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.lang.String java.util.List top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* s */
        start local 2 // java.lang.String s
         3: .line 409
            aload 2 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 7
         4: .line 410
            aload 2 /* s */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            invokestatic com.sun.tools.javadoc.main.DocletInvoker.fileToURL:(Ljava/nio/file/Path;)Ljava/net/URL;
            astore 6 /* url */
        start local 6 // java.net.URL url
         5: .line 411
            aload 6 /* url */
            ifnull 7
         6: .line 412
            aload 1 /* urls */
            aload 6 /* url */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.net.URL url
        end local 2 // java.lang.String s
         7: .line 408
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 2
         9: .line 416
            aload 1 /* urls */
            aload 1 /* urls */
            invokeinterface java.util.List.size:()I
            anewarray java.net.URL
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.net.URL[]
            areturn
        end local 1 // java.util.List urls
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  path  Ljava/lang/String;
            1   10     1  urls  Ljava/util/List<Ljava/net/URL;>;
            3    7     2     s  Ljava/lang/String;
            5    7     6   url  Ljava/net/URL;
    MethodParameters:
      Name  Flags
      path  

  private static java.net.URL fileToURL(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.nio.file.Path file
         0: .line 428
            aload 0 /* file */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokeinterface java.nio.file.Path.toRealPath:([Ljava/nio/file/LinkOption;)Ljava/nio/file/Path;
            astore 1 /* p */
        start local 1 // java.nio.file.Path p
         1: .line 429
            goto 4
        end local 1 // java.nio.file.Path p
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 430
            aload 0 /* file */
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            astore 1 /* p */
        start local 1 // java.nio.file.Path p
         4: .line 433
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 1 /* p */
            invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toUri:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
         5: areturn
         6: .line 434
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
         7: .line 435
            aconst_null
            areturn
        end local 1 // java.nio.file.Path p
        end local 0 // java.nio.file.Path file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  file  Ljava/nio/file/Path;
            1    2     1     p  Ljava/nio/file/Path;
            4    8     1     p  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
           4     5       6  Class java.net.MalformedURLException
    MethodParameters:
      Name  Flags
      file  
}
SourceFile: "DocletInvoker.java"
NestMembers:
  com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
InnerClasses:
  private DocletInvokeException = com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException of com.sun.tools.javadoc.main.DocletInvoker
  public final Location = javax.tools.DocumentationTool$Location of javax.tools.DocumentationTool
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated(since = "9", forRemoval = true)