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 86
            aload 1 /* path1 */
            ifnull 1
            aload 1 /* path1 */
            invokevirtual java.lang.String.length:()I
            ifne 4
         1: .line 87
      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 88
      StackMap locals:
      StackMap stack:
            aload 2 /* path2 */
            ifnull 5
            aload 2 /* path2 */
            invokevirtual java.lang.String.length:()I
            ifne 6
         5: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* path1 */
            areturn
         6: .line 91
      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 95
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 96
            aload 0 /* this */
            aload 1 /* messager */
            putfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
         2: .line 97
            aload 0 /* this */
            aload 2 /* docletClass */
            putfield com.sun.tools.javadoc.main.DocletInvoker.docletClass:Ljava/lang/Class;
         3: .line 98
            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 99
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
         5: .line 100
            aload 0 /* this */
            iload 3 /* apiMode */
            putfield com.sun.tools.javadoc.main.DocletInvoker.apiMode:Z
         6: .line 101
            aload 0 /* this */
            iload 4 /* exportInternalAPI */
            putfield com.sun.tools.javadoc.main.DocletInvoker.exportInternalAPI:Z
         7: .line 104
            iload 4 /* exportInternalAPI */
            ifeq 9
         8: .line 105
            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 107
      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 109
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 114
            aload 0 /* this */
            aload 1 /* messager */
            putfield com.sun.tools.javadoc.main.DocletInvoker.messager:Lcom/sun/tools/javadoc/main/Messager;
         2: .line 115
            aload 0 /* this */
            aload 3 /* docletClassName */
            putfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
         3: .line 116
            aload 0 /* this */
            iload 6 /* apiMode */
            putfield com.sun.tools.javadoc.main.DocletInvoker.apiMode:Z
         4: .line 117
            aload 0 /* this */
            iload 7 /* exportInternalAPI */
            putfield com.sun.tools.javadoc.main.DocletInvoker.exportInternalAPI:Z
         5: .line 119
            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 120
            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 121
            goto 16
         8: .line 123
      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 126
            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 127
            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 128
            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 129
            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 130
            aload 5 /* docletParentClassLoader */
            ifnonnull 15
        14: .line 131
            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 133
      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 136
      StackMap locals:
      StackMap stack:
            iload 7 /* exportInternalAPI */
            ifeq 18
        17: .line 137
            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 141
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 8 /* dc */
        start local 8 // java.lang.Class dc
        19: .line 143
            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 144
            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 145
            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 146
            aload 1 /* messager */
            invokevirtual com.sun.tools.javadoc.main.Messager.exit:()V
        24: .line 148
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* dc */
            putfield com.sun.tools.javadoc.main.DocletInvoker.docletClass:Ljava/lang/Class;
        25: .line 149
            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 168
            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 169
            invokestatic java.lang.ClassLoader.getSystemClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* sysCL */
        start local 3 // java.lang.ClassLoader sysCL
         2: .line 170
            aload 3 /* sysCL */
            ifnonnull 4
         3: .line 171
            aload 2 /* ctxCL */
            areturn
         4: .line 172
      StackMap locals: java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack:
            aload 2 /* ctxCL */
            ifnonnull 6
         5: .line 173
            aload 3 /* sysCL */
            areturn
         6: .line 177
      StackMap locals:
      StackMap stack:
            aload 3 /* sysCL */
            aload 1 /* docletClassName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            pop
         7: .line 179
            aload 2 /* ctxCL */
            aload 1 /* docletClassName */
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            pop
         8: .line 180
            goto 13
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         9: pop
        10: .line 181
            aload 3 /* sysCL */
        11: areturn
        12: .line 183
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        13: .line 188
      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 190
            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 191
            aload 3 /* sysCL */
        16: areturn
        17: .line 192
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        18: .line 193
            aload 3 /* sysCL */
        19: areturn
        20: .line 196
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
        21: .line 199
      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 207
            ldc "start"
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         1: .line 208
            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 209
            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 211
            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 212
            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 213
            iconst_0
            ireturn
        start local 2 // java.lang.Object retVal
         7: .line 215
      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 216
            aload 2 /* retVal */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         9: .line 218
      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 219
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* methodName */
            aastore
        11: .line 218
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 220
            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 231
            ldc "optionLength"
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         1: .line 232
            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 233
            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 235
            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 236
            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 237
            iconst_m1
            ireturn
        start local 2 // java.lang.Object retVal
         7: .line 239
      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 240
            aload 2 /* retVal */
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
         9: .line 242
      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 243
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 3 /* methodName */
            aastore
        11: .line 242
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 244
            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 254
            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 255
            ldc "validOptions"
            astore 4 /* methodName */
        start local 4 // java.lang.String methodName
         2: .line 256
            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 257
            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 258
            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 260
            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 261
            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 262
            iconst_0
            ireturn
        start local 2 // java.lang.Object retVal
         9: .line 264
      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 265
            aload 2 /* retVal */
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        11: .line 267
      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 268
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 4 /* methodName */
            aastore
        13: .line 267
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 269
            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 280
            ldc "languageVersion"
            astore 2 /* methodName */
        start local 2 // java.lang.String methodName
         1: .line 281
            iconst_0
            anewarray java.lang.Class
            astore 3 /* paramTypes */
        start local 3 // java.lang.Class[] paramTypes
         2: .line 282
            iconst_0
            anewarray java.lang.Object
            astore 4 /* params */
        start local 4 // java.lang.Object[] params
         3: .line 284
            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 285
            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 286
            getstatic com.sun.javadoc.LanguageVersion.JAVA_1_1:Lcom/sun/javadoc/LanguageVersion;
         7: areturn
        start local 1 // java.lang.Object retVal
         8: .line 288
      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 289
            aload 1 /* retVal */
            checkcast com.sun.javadoc.LanguageVersion
        10: areturn
        11: .line 291
      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 292
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* methodName */
            aastore
        13: .line 291
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 293
            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 295
      StackMap locals: com.sun.tools.javadoc.main.DocletInvoker
      StackMap stack: java.lang.NoClassDefFoundError
            pop
        17: .line 296
            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 308
            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 309
            goto 14
        end local 5 // java.lang.reflect.Method meth
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
         2: pop
         3: .line 310
            aload 2 /* returnValueIfNonExistent */
            ifnonnull 8
         4: .line 311
            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 312
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
         6: .line 311
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 313
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
         8: .line 315
      StackMap locals:
      StackMap stack:
            aload 2 /* returnValueIfNonExistent */
            areturn
         9: .line 317
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
        10: .line 318
            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 319
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
        12: .line 318
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        13: .line 320
            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 322
      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 323
            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 324
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
        17: .line 323
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        18: .line 325
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
        19: .line 328
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
        20: .line 327
            astore 6 /* savedCCL */
        start local 6 // java.lang.ClassLoader savedCCL
        21: .line 330
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.appClassLoader:Ljava/lang/ClassLoader;
            ifnull 23
        22: .line 331
            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 332
      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 355
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 6 /* savedCCL */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        25: .line 332
            aload 10
            areturn
        26: .line 333
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 7 /* exc */
        start local 7 // java.lang.RuntimeException exc
        27: .line 334
            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 335
            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 334
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        30: .line 336
            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 337
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            pop
        32: .line 338
            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 339
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.docletClassName:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 1 /* methodName */
            aastore
        34: .line 338
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        35: .line 340
            new com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException
            dup
            invokespecial com.sun.tools.javadoc.main.DocletInvoker$DocletInvokeException.<init>:()V
            athrow
        36: .line 342
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 7 /* exc */
        start local 7 // java.lang.reflect.InvocationTargetException exc
        37: .line 343
            aload 7 /* exc */
            invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
            astore 8 /* err */
        start local 8 // java.lang.Throwable err
        38: .line 344
            aload 0 /* this */
            getfield com.sun.tools.javadoc.main.DocletInvoker.apiMode:Z
            ifeq 40
        39: .line 345
            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 346
      StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
      StackMap stack:
            aload 8 /* err */
            instanceof java.lang.OutOfMemoryError
            ifeq 43
        41: .line 347
            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 348
            goto 47
        43: .line 349
      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 350
            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 349
            invokevirtual com.sun.tools.javadoc.main.Messager.error:(Lcom/sun/javadoc/SourcePosition;Ljava/lang/String;[Ljava/lang/Object;)V
        46: .line 351
            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 353
      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 354
      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 355
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 6 /* savedCCL */
            invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
        50: .line 356
            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 366
            bipush 9
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 367
            ldc "com.sun.tools.doclets"
            aastore
            dup
            iconst_1
         2: .line 368
            ldc "com.sun.tools.doclets.standard"
            aastore
            dup
            iconst_2
         3: .line 369
            ldc "com.sun.tools.doclets.internal.toolkit"
            aastore
            dup
            iconst_3
         4: .line 370
            ldc "com.sun.tools.doclets.internal.toolkit.taglets"
            aastore
            dup
            iconst_4
         5: .line 371
            ldc "com.sun.tools.doclets.internal.toolkit.builders"
            aastore
            dup
            iconst_5
         6: .line 372
            ldc "com.sun.tools.doclets.internal.toolkit.util"
            aastore
            dup
            bipush 6
         7: .line 373
            ldc "com.sun.tools.doclets.internal.toolkit.util.links"
            aastore
            dup
            bipush 7
         8: .line 374
            ldc "com.sun.tools.doclets.formats.html"
            aastore
            dup
            bipush 8
         9: .line 375
            ldc "com.sun.tools.doclets.formats.html.markup"
            aastore
        10: .line 366
            astore 2 /* packages */
        start local 2 // java.lang.String[] packages
        11: .line 379
            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 380
            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 382
            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 383
            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 385
            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 386
            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 388
            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 389
            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 388
            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 391
            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 394
      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 406
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* urls */
        start local 1 // java.util.List urls
         1: .line 407
            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 408
            aload 2 /* s */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 7
         4: .line 409
            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 410
            aload 6 /* url */
            ifnull 7
         6: .line 411
            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 407
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 2
         9: .line 415
            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 427
            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 428
            goto 4
        end local 1 // java.nio.file.Path p
      StackMap locals:
      StackMap stack: java.io.IOException
         2: pop
         3: .line 429
            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 432
      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 433
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
         7: .line 434
            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()