class com.sun.management.internal.DiagnosticCommandImpl$Wrapper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.management.internal.DiagnosticCommandImpl$Wrapper
  super_class: java.lang.Object
{
  java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  java.lang.String cmd;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  com.sun.management.internal.DiagnosticCommandInfo info;
    descriptor: Lcom/sun/management/internal/DiagnosticCommandInfo;
    flags: (0x0000) 

  java.security.Permission permission;
    descriptor: Ljava/security/Permission;
    flags: (0x0000) 

  final com.sun.management.internal.DiagnosticCommandImpl this$0;
    descriptor: Lcom/sun/management/internal/DiagnosticCommandImpl;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.sun.management.internal.DiagnosticCommandImpl, java.lang.String, java.lang.String, com.sun.management.internal.DiagnosticCommandInfo);
    descriptor: (Lcom/sun/management/internal/DiagnosticCommandImpl;Ljava/lang/String;Ljava/lang/String;Lcom/sun/management/internal/DiagnosticCommandInfo;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // com.sun.management.internal.DiagnosticCommandImpl$Wrapper this
        start local 2 // java.lang.String name
        start local 3 // java.lang.String cmd
        start local 4 // com.sun.management.internal.DiagnosticCommandInfo info
         0: .line 110
            aload 0 /* this */
            aload 1
            putfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.this$0:Lcom/sun/management/internal/DiagnosticCommandImpl;
         1: .line 109
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 111
            aload 0 /* this */
            aload 2 /* name */
            putfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.name:Ljava/lang/String;
         3: .line 112
            aload 0 /* this */
            aload 3 /* cmd */
            putfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.cmd:Ljava/lang/String;
         4: .line 113
            aload 0 /* this */
            aload 4 /* info */
            putfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.info:Lcom/sun/management/internal/DiagnosticCommandInfo;
         5: .line 114
            aload 0 /* this */
            aconst_null
            putfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
         6: .line 115
            aconst_null
            astore 5 /* cause */
        start local 5 // java.lang.Exception cause
         7: .line 116
            aload 4 /* info */
            invokevirtual com.sun.management.internal.DiagnosticCommandInfo.getPermissionClass:()Ljava/lang/String;
            ifnull 30
         8: .line 118
            aload 4 /* info */
            invokevirtual com.sun.management.internal.DiagnosticCommandInfo.getPermissionClass:()Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* c */
        start local 6 // java.lang.Class c
         9: .line 119
            aload 4 /* info */
            invokevirtual com.sun.management.internal.DiagnosticCommandInfo.getPermissionAction:()Ljava/lang/String;
            ifnonnull 15
        10: .line 121
            aload 6 /* c */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 7 /* constructor */
        start local 7 // java.lang.reflect.Constructor constructor
        11: .line 122
            aload 0 /* this */
            aload 7 /* constructor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* info */
            invokevirtual com.sun.management.internal.DiagnosticCommandInfo.getPermissionName:()Ljava/lang/String;
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            putfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
        end local 7 // java.lang.reflect.Constructor constructor
        12: .line 124
            goto 15
        13: .line 126
      StackMap locals: com.sun.management.internal.DiagnosticCommandImpl$Wrapper com.sun.management.internal.DiagnosticCommandImpl java.lang.String java.lang.String com.sun.management.internal.DiagnosticCommandInfo java.lang.Exception java.lang.Class
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        14: .line 127
            aload 7 /* ex */
            astore 5 /* cause */
        end local 7 // java.lang.Exception ex
        15: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            ifnonnull 26
        16: .line 132
            aload 6 /* c */
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 7 /* constructor */
        start local 7 // java.lang.reflect.Constructor constructor
        17: .line 133
            aload 0 /* this */
            aload 7 /* constructor */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 134
            aload 4 /* info */
            invokevirtual com.sun.management.internal.DiagnosticCommandInfo.getPermissionName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        19: .line 135
            aload 4 /* info */
            invokevirtual com.sun.management.internal.DiagnosticCommandInfo.getPermissionAction:()Ljava/lang/String;
            aastore
        20: .line 133
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            putfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
        end local 7 // java.lang.reflect.Constructor constructor
        21: .line 136
            goto 26
        22: .line 138
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        23: .line 139
            aload 7 /* ex */
            astore 5 /* cause */
        end local 7 // java.lang.Exception ex
        end local 6 // java.lang.Class c
        24: .line 142
            goto 26
      StackMap locals: com.sun.management.internal.DiagnosticCommandImpl$Wrapper com.sun.management.internal.DiagnosticCommandImpl java.lang.String java.lang.String com.sun.management.internal.DiagnosticCommandInfo java.lang.Exception
      StackMap stack: java.lang.ClassNotFoundException
        25: pop
        26: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            ifnonnull 30
        27: .line 145
            new java.lang.InstantiationException
            dup
            ldc "Unable to instantiate required permission"
            invokespecial java.lang.InstantiationException.<init>:(Ljava/lang/String;)V
        28: .line 144
            astore 6 /* iex */
        start local 6 // java.lang.InstantiationException iex
        29: .line 146
            aload 6 /* iex */
            aload 5 /* cause */
            invokevirtual java.lang.InstantiationException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        end local 6 // java.lang.InstantiationException iex
        30: .line 149
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.Exception cause
        end local 4 // com.sun.management.internal.DiagnosticCommandInfo info
        end local 3 // java.lang.String cmd
        end local 2 // java.lang.String name
        end local 0 // com.sun.management.internal.DiagnosticCommandImpl$Wrapper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   31     0         this  Lcom/sun/management/internal/DiagnosticCommandImpl$Wrapper;
            0   31     2         name  Ljava/lang/String;
            0   31     3          cmd  Ljava/lang/String;
            0   31     4         info  Lcom/sun/management/internal/DiagnosticCommandInfo;
            7   31     5        cause  Ljava/lang/Exception;
            9   24     6            c  Ljava/lang/Class<*>;
           11   12     7  constructor  Ljava/lang/reflect/Constructor<*>;
           14   15     7           ex  Ljava/lang/Exception;
           17   21     7  constructor  Ljava/lang/reflect/Constructor<*>;
           23   24     7           ex  Ljava/lang/Exception;
           29   30     6          iex  Ljava/lang/InstantiationException;
      Exception table:
        from    to  target  type
          10    12      13  Class java.lang.InstantiationException
          10    12      13  Class java.lang.IllegalAccessException
          10    12      13  Class java.lang.IllegalArgumentException
          10    12      13  Class java.lang.reflect.InvocationTargetException
          10    12      13  Class java.lang.NoSuchMethodException
          10    12      13  Class java.lang.SecurityException
          16    21      22  Class java.lang.InstantiationException
          16    21      22  Class java.lang.IllegalAccessException
          16    21      22  Class java.lang.IllegalArgumentException
          16    21      22  Class java.lang.reflect.InvocationTargetException
          16    21      22  Class java.lang.NoSuchMethodException
          16    21      22  Class java.lang.SecurityException
           8    24      25  Class java.lang.ClassNotFoundException
    Exceptions:
      throws java.lang.InstantiationException
    MethodParameters:
        Name  Flags
      this$0  final
      name    
      cmd     
      info    

  public java.lang.String execute(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.management.internal.DiagnosticCommandImpl$Wrapper this
        start local 1 // java.lang.String[] args
         0: .line 152
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            ifnull 4
         1: .line 153
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         2: .line 154
            aload 2 /* sm */
            ifnull 4
         3: .line 155
            aload 2 /* sm */
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 2 // java.lang.SecurityManager sm
         4: .line 158
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            ifnonnull 6
         5: .line 159
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.this$0:Lcom/sun/management/internal/DiagnosticCommandImpl;
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.cmd:Ljava/lang/String;
            invokevirtual com.sun.management.internal.DiagnosticCommandImpl.executeDiagnosticCommand:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         6: .line 161
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         7: .line 162
            aload 2 /* sb */
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.cmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 163
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 15
        10: .line 164
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* args */
            iload 3 /* i */
            aaload
            ifnonnull 12
        11: .line 165
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid null argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 167
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 168
            aload 2 /* sb */
            aload 1 /* args */
            iload 3 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 163
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            aload 1 /* args */
            arraylength
            if_icmplt 10
        end local 3 // int i
        16: .line 170
            aload 0 /* this */
            getfield com.sun.management.internal.DiagnosticCommandImpl$Wrapper.this$0:Lcom/sun/management/internal/DiagnosticCommandImpl;
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.management.internal.DiagnosticCommandImpl.executeDiagnosticCommand:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.String[] args
        end local 0 // com.sun.management.internal.DiagnosticCommandImpl$Wrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/sun/management/internal/DiagnosticCommandImpl$Wrapper;
            0   17     1  args  [Ljava/lang/String;
            2    4     2    sm  Ljava/lang/SecurityManager;
            7   17     2    sb  Ljava/lang/StringBuilder;
            9   16     3     i  I
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "DiagnosticCommandImpl.java"
NestHost: com.sun.management.internal.DiagnosticCommandImpl
InnerClasses:
  private Wrapper = com.sun.management.internal.DiagnosticCommandImpl$Wrapper of com.sun.management.internal.DiagnosticCommandImpl