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