public class java.security.ProtectionDomain
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: java.security.ProtectionDomain
super_class: java.lang.Object
{
private static final boolean filePermCompatInPD;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.security.CodeSource codesource;
descriptor: Ljava/security/CodeSource;
flags: (0x0002) ACC_PRIVATE
private java.lang.ClassLoader classloader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
private java.security.Principal[] principals;
descriptor: [Ljava/security/Principal;
flags: (0x0002) ACC_PRIVATE
private java.security.PermissionCollection permissions;
descriptor: Ljava/security/PermissionCollection;
flags: (0x0002) ACC_PRIVATE
private boolean hasAllPerm;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final boolean staticPermissions;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final java.security.ProtectionDomain$Key key;
descriptor: Ljava/security/ProtectionDomain$Key;
flags: (0x0010) ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "true"
1: ldc "jdk.security.filePermCompat"
2: invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
3: putstatic java.security.ProtectionDomain.filePermCompatInPD:Z
4: new java.security.ProtectionDomain$JavaSecurityAccessImpl
dup
invokespecial java.security.ProtectionDomain$JavaSecurityAccessImpl.<init>:()V
invokestatic jdk.internal.access.SharedSecrets.setJavaSecurityAccess:(Ljdk/internal/access/JavaSecurityAccess;)V
5: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.security.CodeSource, java.security.PermissionCollection);
descriptor: (Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.security.ProtectionDomain.hasAllPerm:Z
2: aload 0
new java.security.ProtectionDomain$Key
dup
aload 0
invokespecial java.security.ProtectionDomain$Key.<init>:(Ljava/security/ProtectionDomain;)V
putfield java.security.ProtectionDomain.key:Ljava/security/ProtectionDomain$Key;
3: aload 0
aload 1
putfield java.security.ProtectionDomain.codesource:Ljava/security/CodeSource;
4: aload 2
ifnull 10
5: aload 0
aload 2
putfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
6: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
invokevirtual java.security.PermissionCollection.setReadOnly:()V
7: aload 2
instanceof java.security.Permissions
ifeq 10
8: aload 2
checkcast java.security.Permissions
getfield java.security.Permissions.allPermission:Ljava/security/PermissionCollection;
ifnull 10
9: aload 0
iconst_1
putfield java.security.ProtectionDomain.hasAllPerm:Z
10: StackMap locals: java.security.ProtectionDomain java.security.CodeSource java.security.PermissionCollection
StackMap stack:
aload 0
aconst_null
putfield java.security.ProtectionDomain.classloader:Ljava/lang/ClassLoader;
11: aload 0
iconst_0
anewarray java.security.Principal
putfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
12: aload 0
iconst_1
putfield java.security.ProtectionDomain.staticPermissions:Z
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/security/ProtectionDomain;
0 14 1 codesource Ljava/security/CodeSource;
0 14 2 permissions Ljava/security/PermissionCollection;
MethodParameters:
Name Flags
codesource
permissions
public void <init>(java.security.CodeSource, java.security.PermissionCollection, java.lang.ClassLoader, java.security.Principal[]);
descriptor: (Ljava/security/CodeSource;Ljava/security/PermissionCollection;Ljava/lang/ClassLoader;[Ljava/security/Principal;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield java.security.ProtectionDomain.hasAllPerm:Z
2: aload 0
new java.security.ProtectionDomain$Key
dup
aload 0
invokespecial java.security.ProtectionDomain$Key.<init>:(Ljava/security/ProtectionDomain;)V
putfield java.security.ProtectionDomain.key:Ljava/security/ProtectionDomain$Key;
3: aload 0
aload 1
putfield java.security.ProtectionDomain.codesource:Ljava/security/CodeSource;
4: aload 2
ifnull 10
5: aload 0
aload 2
putfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
6: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
invokevirtual java.security.PermissionCollection.setReadOnly:()V
7: aload 2
instanceof java.security.Permissions
ifeq 10
8: aload 2
checkcast java.security.Permissions
getfield java.security.Permissions.allPermission:Ljava/security/PermissionCollection;
ifnull 10
9: aload 0
iconst_1
putfield java.security.ProtectionDomain.hasAllPerm:Z
10: StackMap locals: java.security.ProtectionDomain java.security.CodeSource java.security.PermissionCollection java.lang.ClassLoader java.security.Principal[]
StackMap stack:
aload 0
aload 3
putfield java.security.ProtectionDomain.classloader:Ljava/lang/ClassLoader;
11: aload 0
aload 4
ifnull 12
aload 4
invokevirtual java.security.Principal[].clone:()Ljava/lang/Object;
checkcast java.security.Principal[]
goto 13
12: StackMap locals:
StackMap stack: java.security.ProtectionDomain
iconst_0
anewarray java.security.Principal
13: StackMap locals: java.security.ProtectionDomain java.security.CodeSource java.security.PermissionCollection java.lang.ClassLoader java.security.Principal[]
StackMap stack: java.security.ProtectionDomain java.security.Principal[]
putfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
14: aload 0
iconst_0
putfield java.security.ProtectionDomain.staticPermissions:Z
15: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/security/ProtectionDomain;
0 16 1 codesource Ljava/security/CodeSource;
0 16 2 permissions Ljava/security/PermissionCollection;
0 16 3 classloader Ljava/lang/ClassLoader;
0 16 4 principals [Ljava/security/Principal;
MethodParameters:
Name Flags
codesource
permissions
classloader
principals
public final java.security.CodeSource getCodeSource();
descriptor: ()Ljava/security/CodeSource;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.ProtectionDomain.codesource:Ljava/security/CodeSource;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/ProtectionDomain;
public final java.lang.ClassLoader getClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.ProtectionDomain.classloader:Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/ProtectionDomain;
public final java.security.Principal[] getPrincipals();
descriptor: ()[Ljava/security/Principal;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
invokevirtual java.security.Principal[].clone:()Ljava/lang/Object;
checkcast java.security.Principal[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/ProtectionDomain;
public final java.security.PermissionCollection getPermissions();
descriptor: ()Ljava/security/PermissionCollection;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/ProtectionDomain;
public final boolean staticPermissionsOnly();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.security.ProtectionDomain.staticPermissions:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/security/ProtectionDomain;
public boolean implies(java.security.Permission);
descriptor: (Ljava/security/Permission;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield java.security.ProtectionDomain.hasAllPerm:Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield java.security.ProtectionDomain.staticPermissions:Z
ifne 5
3: invokestatic java.security.Policy.getPolicyNoCheck:()Ljava/security/Policy;
aload 0
aload 1
invokevirtual java.security.Policy.implies:(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
ifnull 7
6: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
aload 1
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ireturn
7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/security/ProtectionDomain;
0 8 1 perm Ljava/security/Permission;
MethodParameters:
Name Flags
perm
boolean impliesWithAltFilePerm(java.security.Permission);
descriptor: (Ljava/security/Permission;)Z
flags: (0x0000)
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: getstatic java.security.ProtectionDomain.filePermCompatInPD:Z
ifeq 2
getstatic sun.security.util.FilePermCompat.compat:Z
ifeq 2
1: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc Ljava/security/ProtectionDomain;
if_acmpeq 3
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.security.ProtectionDomain.implies:(Ljava/security/Permission;)Z
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield java.security.ProtectionDomain.hasAllPerm:Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 6: iconst_0
istore 3
start local 3 7: aload 0
getfield java.security.ProtectionDomain.staticPermissions:Z
ifne 17
8: invokestatic java.security.Policy.getPolicyNoCheck:()Ljava/security/Policy;
astore 4
start local 4 9: aload 4
instanceof sun.security.provider.PolicyFile
ifeq 11
10: aload 4
aload 0
aload 1
invokevirtual java.security.Policy.implies:(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z
ireturn
11: StackMap locals: java.security.Permission int java.security.Policy
StackMap stack:
aload 4
aload 0
aload 1
invokevirtual java.security.Policy.implies:(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z
ifeq 13
12: iconst_1
ireturn
13: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.util.FilePermCompat.newPermUsingAltPath:(Ljava/security/Permission;)Ljava/security/Permission;
astore 2
14: iconst_1
istore 3
15: aload 2
ifnull 17
aload 4
aload 0
aload 2
invokevirtual java.security.Policy.implies:(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z
ifeq 17
16: iconst_1
ireturn
end local 4 17: StackMap locals:
StackMap stack:
aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
ifnull 24
18: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
aload 1
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ifeq 20
19: iconst_1
ireturn
20: StackMap locals:
StackMap stack:
iload 3
ifne 22
21: aload 1
invokestatic sun.security.util.FilePermCompat.newPermUsingAltPath:(Ljava/security/Permission;)Ljava/security/Permission;
astore 2
22: StackMap locals:
StackMap stack:
aload 2
ifnull 24
23: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
aload 2
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ireturn
24: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/security/ProtectionDomain;
0 25 1 perm Ljava/security/Permission;
6 25 2 p2 Ljava/security/Permission;
7 25 3 p2Calculated Z
9 17 4 policy Ljava/security/Policy;
MethodParameters:
Name Flags
perm
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: ldc "<no principals>"
astore 1
start local 1 1: aload 0
getfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
ifnull 15
aload 0
getfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
arraylength
ifle 15
2: new java.lang.StringBuilder
dup
ldc "(principals "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 13
5: StackMap locals: java.lang.String java.lang.StringBuilder int
StackMap stack:
aload 2
new java.lang.StringBuilder
dup
aload 0
getfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
iload 3
aaload
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: ldc " \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
iload 3
aaload
invokeinterface java.security.Principal.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: iload 3
aload 0
getfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
arraylength
iconst_1
isub
if_icmpge 11
10: aload 2
ldc ",\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 12
11: StackMap locals:
StackMap stack:
aload 2
ldc ")\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
12: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
13: iload 3
aload 0
getfield java.security.ProtectionDomain.principals:[Ljava/security/Principal;
arraylength
if_icmplt 5
end local 3 14: aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 1
end local 2 15: StackMap locals:
StackMap stack:
invokestatic java.security.Policy.isSet:()Z
ifeq 17
invokestatic java.security.ProtectionDomain.seeAllp:()Z
ifeq 17
16: aload 0
invokevirtual java.security.ProtectionDomain.mergePermissions:()Ljava/security/PermissionCollection;
goto 18
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.security.ProtectionDomain.getPermissions:()Ljava/security/PermissionCollection;
18: StackMap locals:
StackMap stack: java.security.PermissionCollection
astore 2
start local 2 19: new java.lang.StringBuilder
dup
ldc "ProtectionDomain "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
20: aload 0
getfield java.security.ProtectionDomain.codesource:Ljava/security/CodeSource;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.security.ProtectionDomain.classloader:Ljava/lang/ClassLoader;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
22: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/security/ProtectionDomain;
1 25 1 pals Ljava/lang/String;
3 15 2 palBuf Ljava/lang/StringBuilder;
4 14 3 i I
19 25 2 pc Ljava/security/PermissionCollection;
private static boolean seeAllp();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 0
start local 0 1: aload 0
ifnonnull 3
2: iconst_1
ireturn
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
getstatic java.security.ProtectionDomain$DebugHolder.debug:Lsun/security/util/Debug;
ifnull 7
4: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
ifnonnull 10
5: invokestatic java.security.Policy.getPolicyNoCheck:()Ljava/security/Policy;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
ifnonnull 10
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
aload 0
getstatic sun.security.util.SecurityConstants.GET_POLICY_PERMISSION:Ljava/security/SecurityPermission;
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack: java.lang.SecurityException
pop
10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 11 0 sm Ljava/lang/SecurityManager;
Exception table:
from to target type
7 8 9 Class java.lang.SecurityException
private java.security.PermissionCollection mergePermissions();
descriptor: ()Ljava/security/PermissionCollection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=15, args_size=1
start local 0 0: aload 0
getfield java.security.ProtectionDomain.staticPermissions:Z
ifeq 2
1: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
areturn
2: StackMap locals:
StackMap stack:
new java.security.ProtectionDomain$1
dup
aload 0
invokespecial java.security.ProtectionDomain$1.<init>:(Ljava/security/ProtectionDomain;)V
3: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.security.PermissionCollection
4: astore 1
start local 1 5: new java.security.Permissions
dup
invokespecial java.security.Permissions.<init>:()V
astore 2
start local 2 6: bipush 32
istore 3
start local 3 7: bipush 8
istore 4
start local 4 8: new java.util.ArrayList
dup
iload 4
invokespecial java.util.ArrayList.<init>:(I)V
astore 6
start local 6 9: new java.util.ArrayList
dup
iload 3
invokespecial java.util.ArrayList.<init>:(I)V
astore 7
start local 7 10: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
ifnull 20
11: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
dup
astore 8
monitorenter
12: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
invokevirtual java.security.PermissionCollection.elements:()Ljava/util/Enumeration;
astore 5
start local 5 13: goto 15
14: StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int java.util.Enumeration java.util.List java.util.List java.security.PermissionCollection
StackMap stack:
aload 6
aload 5
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.security.Permission
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
15: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 14
16: aload 8
monitorexit
17: goto 20
end local 5 StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int top java.util.List java.util.List java.security.PermissionCollection
StackMap stack: java.lang.Throwable
18: aload 8
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 1
ifnull 31
21: aload 1
dup
astore 8
monitorenter
22: aload 1
invokevirtual java.security.PermissionCollection.elements:()Ljava/util/Enumeration;
astore 5
start local 5 23: goto 26
24: StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int java.util.Enumeration java.util.List java.util.List java.security.PermissionCollection
StackMap stack:
aload 7
aload 5
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.security.Permission
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: iinc 4 1
26: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 24
27: aload 8
monitorexit
28: goto 31
end local 5 StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int top java.util.List java.util.List java.security.PermissionCollection
StackMap stack: java.lang.Throwable
29: aload 8
monitorexit
30: athrow
31: StackMap locals:
StackMap stack:
aload 1
ifnull 54
aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
ifnull 54
32: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
dup
astore 8
monitorenter
33: aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
invokevirtual java.security.PermissionCollection.elements:()Ljava/util/Enumeration;
astore 5
start local 5 34: goto 49
35: StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int java.util.Enumeration java.util.List java.util.List java.security.PermissionCollection
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.security.Permission
astore 9
start local 9 36: aload 9
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 10
start local 10 37: aload 9
invokevirtual java.security.Permission.getActions:()Ljava/lang/String;
astore 11
start local 11 38: aload 9
invokevirtual java.security.Permission.getName:()Ljava/lang/String;
astore 12
start local 12 39: iconst_0
istore 13
start local 13 40: goto 48
41: StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int java.util.Enumeration java.util.List java.util.List java.security.PermissionCollection java.security.Permission java.lang.Class java.lang.String java.lang.String int
StackMap stack:
aload 7
iload 13
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.Permission
astore 14
start local 14 42: aload 10
aload 14
invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
ifeq 47
43: aload 12
aload 14
invokevirtual java.security.Permission.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 47
44: aload 11
aload 14
invokevirtual java.security.Permission.getActions:()Ljava/lang/String;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 47
45: aload 7
iload 13
invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
pop
46: goto 49
end local 14 47: StackMap locals:
StackMap stack:
iinc 13 1
StackMap locals:
StackMap stack:
48: iload 13
aload 7
invokeinterface java.util.List.size:()I
if_icmplt 41
end local 13 end local 12 end local 11 end local 10 end local 9 49: StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int java.util.Enumeration java.util.List java.util.List java.security.PermissionCollection
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 35
50: aload 8
monitorexit
51: goto 54
end local 5 StackMap locals: java.security.ProtectionDomain java.security.PermissionCollection java.security.Permissions int int top java.util.List java.util.List java.security.PermissionCollection
StackMap stack: java.lang.Throwable
52: aload 8
monitorexit
53: athrow
54: StackMap locals:
StackMap stack:
aload 1
ifnull 60
55: aload 7
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 8
start local 8 56: goto 59
57: StackMap locals: int
StackMap stack:
aload 2
aload 7
iload 8
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.Permission
invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
58: iinc 8 -1
StackMap locals:
StackMap stack:
59: iload 8
ifge 57
end local 8 60: StackMap locals:
StackMap stack:
aload 0
getfield java.security.ProtectionDomain.permissions:Ljava/security/PermissionCollection;
ifnull 66
61: aload 6
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 8
start local 8 62: goto 65
63: StackMap locals: int
StackMap stack:
aload 2
aload 6
iload 8
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.security.Permission
invokevirtual java.security.Permissions.add:(Ljava/security/Permission;)V
64: iinc 8 -1
StackMap locals:
StackMap stack:
65: iload 8
ifge 63
end local 8 66: StackMap locals:
StackMap stack:
aload 2
areturn
end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 this Ljava/security/ProtectionDomain;
5 67 1 perms Ljava/security/PermissionCollection;
6 67 2 mergedPerms Ljava/security/Permissions;
7 67 3 swag I
8 67 4 vcap I
13 18 5 e Ljava/util/Enumeration<Ljava/security/Permission;>;
23 29 5 e Ljava/util/Enumeration<Ljava/security/Permission;>;
34 52 5 e Ljava/util/Enumeration<Ljava/security/Permission;>;
9 67 6 pdVector Ljava/util/List<Ljava/security/Permission;>;
10 67 7 plVector Ljava/util/List<Ljava/security/Permission;>;
36 49 9 pdp Ljava/security/Permission;
37 49 10 pdpClass Ljava/lang/Class<*>;
38 49 11 pdpActions Ljava/lang/String;
39 49 12 pdpName Ljava/lang/String;
40 49 13 i I
42 47 14 pp Ljava/security/Permission;
56 60 8 i I
62 66 8 i I
Exception table:
from to target type
12 17 18 any
18 19 18 any
22 28 29 any
29 30 29 any
33 51 52 any
52 53 52 any
}
SourceFile: "ProtectionDomain.java"
NestMembers:
java.security.ProtectionDomain$1 java.security.ProtectionDomain$DebugHolder java.security.ProtectionDomain$JavaSecurityAccessImpl java.security.ProtectionDomain$JavaSecurityAccessImpl$1 java.security.ProtectionDomain$Key
InnerClasses:
java.security.ProtectionDomain$1
private DebugHolder = java.security.ProtectionDomain$DebugHolder of java.security.ProtectionDomain
private JavaSecurityAccessImpl = java.security.ProtectionDomain$JavaSecurityAccessImpl of java.security.ProtectionDomain
final Key = java.security.ProtectionDomain$Key of java.security.ProtectionDomain