public final class sun.security.util.LazyCodeSourcePermissionCollection extends java.security.PermissionCollection
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.security.util.LazyCodeSourcePermissionCollection
super_class: java.security.PermissionCollection
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -6727011328946861783
private final java.security.PermissionCollection perms;
descriptor: Ljava/security/PermissionCollection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.security.CodeSource cs;
descriptor: Ljava/security/CodeSource;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean permissionAdded;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
public void <init>(java.security.PermissionCollection, java.security.CodeSource);
descriptor: (Ljava/security/PermissionCollection;Ljava/security/CodeSource;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.security.PermissionCollection.<init>:()V
1: aload 0
aload 1
putfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
2: aload 0
aload 2
putfield sun.security.util.LazyCodeSourcePermissionCollection.cs:Ljava/security/CodeSource;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/util/LazyCodeSourcePermissionCollection;
0 4 1 perms Ljava/security/PermissionCollection;
0 4 2 cs Ljava/security/CodeSource;
MethodParameters:
Name Flags
perms
cs
private void ensureAdded();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.permissionAdded:Z
ifne 26
1: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
dup
astore 1
monitorenter
2: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.permissionAdded:Z
ifeq 5
3: aload 1
monitorexit
4: return
5: StackMap locals: java.security.PermissionCollection
StackMap stack:
aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.cs:Ljava/security/CodeSource;
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
astore 2
start local 2 6: aload 2
ifnull 19
7: aload 2
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
invokevirtual java.net.URLConnection.getPermission:()Ljava/security/Permission;
astore 3
start local 3 8: aload 3
ifnull 19
9: aload 3
instanceof java.io.FilePermission
ifeq 16
10: aload 3
invokevirtual java.security.Permission.getName:()Ljava/lang/String;
astore 4
start local 4 11: aload 4
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 16
12: new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
13: new java.io.FilePermission
dup
aload 4
14: ldc "read"
15: invokespecial java.io.FilePermission.<init>:(Ljava/lang/String;Ljava/lang/String;)V
astore 3
end local 4 16: StackMap locals: java.net.URL java.security.Permission
StackMap stack:
aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
aload 3
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
end local 3 17: goto 19
StackMap locals: sun.security.util.LazyCodeSourcePermissionCollection java.security.PermissionCollection java.net.URL
StackMap stack: java.io.IOException
18: pop
19: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.security.util.LazyCodeSourcePermissionCollection.isReadOnly:()Z
ifeq 21
20: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
invokevirtual java.security.PermissionCollection.setReadOnly:()V
21: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.security.util.LazyCodeSourcePermissionCollection.permissionAdded:Z
end local 2 22: aload 1
monitorexit
23: goto 26
StackMap locals: sun.security.util.LazyCodeSourcePermissionCollection java.security.PermissionCollection
StackMap stack: java.lang.Throwable
24: aload 1
monitorexit
25: athrow
26: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/security/util/LazyCodeSourcePermissionCollection;
6 22 2 location Ljava/net/URL;
8 17 3 p Ljava/security/Permission;
11 16 4 path Ljava/lang/String;
Exception table:
from to target type
7 17 18 Class java.io.IOException
2 4 24 any
5 23 24 any
24 25 24 any
public void add(java.security.Permission);
descriptor: (Ljava/security/Permission;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.util.LazyCodeSourcePermissionCollection.isReadOnly:()Z
ifeq 4
1: new java.lang.SecurityException
dup
2: ldc "attempt to add a Permission to a readonly PermissionCollection"
3: invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
aload 1
invokevirtual java.security.PermissionCollection.add:(Ljava/security/Permission;)V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/util/LazyCodeSourcePermissionCollection;
0 6 1 permission Ljava/security/Permission;
MethodParameters:
Name Flags
permission
public boolean implies(java.security.Permission);
descriptor: (Ljava/security/Permission;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual sun.security.util.LazyCodeSourcePermissionCollection.ensureAdded:()V
1: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
aload 1
invokevirtual java.security.PermissionCollection.implies:(Ljava/security/Permission;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/LazyCodeSourcePermissionCollection;
0 2 1 permission Ljava/security/Permission;
MethodParameters:
Name Flags
permission
public java.util.Enumeration<java.security.Permission> elements();
descriptor: ()Ljava/util/Enumeration;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.security.util.LazyCodeSourcePermissionCollection.ensureAdded:()V
1: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
invokevirtual java.security.PermissionCollection.elements:()Ljava/util/Enumeration;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/LazyCodeSourcePermissionCollection;
Signature: ()Ljava/util/Enumeration<Ljava/security/Permission;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.security.util.LazyCodeSourcePermissionCollection.ensureAdded:()V
1: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
invokevirtual java.security.PermissionCollection.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/LazyCodeSourcePermissionCollection;
private java.lang.Object writeReplace();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.security.util.LazyCodeSourcePermissionCollection.ensureAdded:()V
1: aload 0
getfield sun.security.util.LazyCodeSourcePermissionCollection.perms:Ljava/security/PermissionCollection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/util/LazyCodeSourcePermissionCollection;
}
SourceFile: "LazyCodeSourcePermissionCollection.java"