class sun.management.DiagnosticCommandImpl$Wrapper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.management.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) 

  sun.management.DiagnosticCommandInfo info;
    descriptor: Lsun/management/DiagnosticCommandInfo;
    flags: (0x0000) 

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

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

  void <init>(sun.management.DiagnosticCommandImpl, java.lang.String, java.lang.String, sun.management.DiagnosticCommandInfo);
    descriptor: (Lsun/management/DiagnosticCommandImpl;Ljava/lang/String;Ljava/lang/String;Lsun/management/DiagnosticCommandInfo;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // sun.management.DiagnosticCommandImpl$Wrapper this
        start local 2 // java.lang.String name
        start local 3 // java.lang.String cmd
        start local 4 // sun.management.DiagnosticCommandInfo info
         0: .line 79
            aload 0 /* this */
            aload 1
            putfield sun.management.DiagnosticCommandImpl$Wrapper.this$0:Lsun/management/DiagnosticCommandImpl;
         1: .line 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         2: .line 80
            aload 0 /* this */
            aload 2 /* name */
            putfield sun.management.DiagnosticCommandImpl$Wrapper.name:Ljava/lang/String;
         3: .line 81
            aload 0 /* this */
            aload 3 /* cmd */
            putfield sun.management.DiagnosticCommandImpl$Wrapper.cmd:Ljava/lang/String;
         4: .line 82
            aload 0 /* this */
            aload 4 /* info */
            putfield sun.management.DiagnosticCommandImpl$Wrapper.info:Lsun/management/DiagnosticCommandInfo;
         5: .line 83
            aload 0 /* this */
            aconst_null
            putfield sun.management.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
         6: .line 84
            aconst_null
            astore 5 /* cause */
        start local 5 // java.lang.Exception cause
         7: .line 85
            aload 4 /* info */
            invokevirtual sun.management.DiagnosticCommandInfo.getPermissionClass:()Ljava/lang/String;
            ifnull 30
         8: .line 87
            aload 4 /* info */
            invokevirtual sun.management.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 88
            aload 4 /* info */
            invokevirtual sun.management.DiagnosticCommandInfo.getPermissionAction:()Ljava/lang/String;
            ifnonnull 15
        10: .line 90
            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 91
            aload 0 /* this */
            aload 7 /* constructor */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* info */
            invokevirtual sun.management.DiagnosticCommandInfo.getPermissionName:()Ljava/lang/String;
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            putfield sun.management.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
        end local 7 // java.lang.reflect.Constructor constructor
        12: .line 93
            goto 15
        13: .line 95
      StackMap locals: sun.management.DiagnosticCommandImpl$Wrapper sun.management.DiagnosticCommandImpl java.lang.String java.lang.String sun.management.DiagnosticCommandInfo java.lang.Exception java.lang.Class
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        14: .line 96
            aload 7 /* ex */
            astore 5 /* cause */
        end local 7 // java.lang.Exception ex
        15: .line 99
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            ifnonnull 26
        16: .line 101
            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 102
            aload 0 /* this */
            aload 7 /* constructor */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 103
            aload 4 /* info */
            invokevirtual sun.management.DiagnosticCommandInfo.getPermissionName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        19: .line 104
            aload 4 /* info */
            invokevirtual sun.management.DiagnosticCommandInfo.getPermissionAction:()Ljava/lang/String;
            aastore
        20: .line 102
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.Permission
            putfield sun.management.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
        end local 7 // java.lang.reflect.Constructor constructor
        21: .line 105
            goto 26
        22: .line 107
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        23: .line 108
            aload 7 /* ex */
            astore 5 /* cause */
        end local 7 // java.lang.Exception ex
        end local 6 // java.lang.Class c
        24: .line 111
            goto 26
      StackMap locals: sun.management.DiagnosticCommandImpl$Wrapper sun.management.DiagnosticCommandImpl java.lang.String java.lang.String sun.management.DiagnosticCommandInfo java.lang.Exception
      StackMap stack: java.lang.ClassNotFoundException
        25: pop
        26: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            ifnonnull 30
        27: .line 114
            new java.lang.InstantiationException
            dup
            ldc "Unable to instantiate required permission"
            invokespecial java.lang.InstantiationException.<init>:(Ljava/lang/String;)V
        28: .line 113
            astore 6 /* iex */
        start local 6 // java.lang.InstantiationException iex
        29: .line 115
            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 118
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.Exception cause
        end local 4 // sun.management.DiagnosticCommandInfo info
        end local 3 // java.lang.String cmd
        end local 2 // java.lang.String name
        end local 0 // sun.management.DiagnosticCommandImpl$Wrapper this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   31     0         this  Lsun/management/DiagnosticCommandImpl$Wrapper;
            0   31     2         name  Ljava/lang/String;
            0   31     3          cmd  Ljava/lang/String;
            0   31     4         info  Lsun/management/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 // sun.management.DiagnosticCommandImpl$Wrapper this
        start local 1 // java.lang.String[] args
         0: .line 121
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            ifnull 4
         1: .line 122
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         2: .line 123
            aload 2 /* sm */
            ifnull 4
         3: .line 124
            aload 2 /* sm */
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.permission:Ljava/security/Permission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 2 // java.lang.SecurityManager sm
         4: .line 127
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            ifnonnull 6
         5: .line 128
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.this$0:Lsun/management/DiagnosticCommandImpl;
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.cmd:Ljava/lang/String;
            invokevirtual sun.management.DiagnosticCommandImpl.executeDiagnosticCommand:(Ljava/lang/String;)Ljava/lang/String;
            areturn
         6: .line 130
      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 131
            aload 2 /* sb */
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.cmd:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 132
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         9: goto 15
        10: .line 133
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* args */
            iload 3 /* i */
            aaload
            ifnonnull 12
        11: .line 134
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid null argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 136
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 137
            aload 2 /* sb */
            aload 1 /* args */
            iload 3 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 132
            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 139
            aload 0 /* this */
            getfield sun.management.DiagnosticCommandImpl$Wrapper.this$0:Lsun/management/DiagnosticCommandImpl;
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.management.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 // sun.management.DiagnosticCommandImpl$Wrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lsun/management/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: sun.management.DiagnosticCommandImpl
InnerClasses:
  private Wrapper = sun.management.DiagnosticCommandImpl$Wrapper of sun.management.DiagnosticCommandImpl