class jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2 extends java.security.SecureClassLoader
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2
super_class: java.security.SecureClassLoader
{
private final java.lang.ClassLoader myLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Module adapterModule;
descriptor: Ljava/lang/Module;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader this$0;
descriptor: Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final java.security.ProtectionDomain val$protectionDomain;
descriptor: Ljava/security/ProtectionDomain;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader, java.lang.ClassLoader, java.security.ProtectionDomain);
descriptor: (Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 2 0: aload 0
aload 1
putfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.this$0:Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;
aload 0
aload 3
putfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.val$protectionDomain:Ljava/security/ProtectionDomain;
aload 0
aload 2
invokespecial java.security.SecureClassLoader.<init>:(Ljava/lang/ClassLoader;)V
1: aload 0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
putfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.myLoader:Ljava/lang/ClassLoader;
2: aload 0
aload 0
invokevirtual jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.getUnnamedModule:()Ljava/lang/Module;
putfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.adapterModule:Ljava/lang/Module;
3: getstatic jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.NASHORN_MODULE:Ljava/lang/Module;
ldc "jdk.nashorn.internal.runtime"
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.adapterModule:Ljava/lang/Module;
invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
pop
4: getstatic jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.NASHORN_MODULE:Ljava/lang/Module;
ldc "jdk.nashorn.internal.runtime.linker"
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.adapterModule:Ljava/lang/Module;
invokevirtual java.lang.Module.addExports:(Ljava/lang/String;Ljava/lang/Module;)Ljava/lang/Module;
pop
5: getstatic jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.NASHORN_MODULE:Ljava/lang/Module;
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.adapterModule:Ljava/lang/Module;
invokevirtual java.lang.Module.addReads:(Ljava/lang/Module;)Ljava/lang/Module;
pop
6: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader$2;
0 7 2 $anonymous0 Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
this$0 final
$anonymous0
val$protectionDomain final
public java.lang.Class<?> loadClass(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
bipush 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 3
start local 3 1: iload 3
iconst_m1
if_icmpeq 4
2: aload 1
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 4
start local 4 3: aload 4
invokestatic jdk.nashorn.internal.runtime.Context.checkPackageAccess:(Ljava/lang/String;)V
end local 4 4: StackMap locals: int
StackMap stack:
aload 0
aload 1
iload 2
invokespecial java.security.SecureClassLoader.loadClass:(Ljava/lang/String;Z)Ljava/lang/Class;
5: areturn
end local 3 6: StackMap locals: jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2 java.lang.String int
StackMap stack: java.lang.SecurityException
astore 3
start local 3 7: getstatic jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.VISIBLE_INTERNAL_CLASS_NAMES:Ljava/util/Collection;
aload 1
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 11
8: aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.myLoader:Ljava/lang/ClassLoader;
ifnull 9
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.myLoader:Ljava/lang/ClassLoader;
aload 1
invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
goto 10
StackMap locals: java.lang.SecurityException
StackMap stack:
9: aload 1
iconst_0
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.myLoader:Ljava/lang/ClassLoader;
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
10: areturn
11: StackMap locals:
StackMap stack:
aload 3
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader$2;
0 12 1 name Ljava/lang/String;
0 12 2 resolve Z
1 6 3 i I
3 4 4 pkgName Ljava/lang/String;
7 12 3 se Ljava/lang/SecurityException;
Exception table:
from to target type
0 5 6 Class java.lang.SecurityException
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;Z)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name final
resolve final
protected java.lang.Class<?> findClass(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.this$0:Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.className:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
1: getstatic jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.$assertionsDisabled:Z
ifne 2
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.this$0:Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.classBytes:[B
ifnonnull 2
new java.lang.AssertionError
dup
ldc "what? already cleared .class bytes!!"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
2: StackMap locals:
StackMap stack:
new jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2$1
dup
aload 0
invokespecial jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2$1.<init>:(Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader$2;)V
3: getstatic jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.GET_CONTEXT_ACC_CTXT:Ljava/security/AccessControlContext;
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
checkcast jdk.nashorn.internal.runtime.Context
astore 2
start local 2 5: aload 2
invokevirtual jdk.nashorn.internal.runtime.Context.getEnv:()Ljdk/nashorn/internal/runtime/ScriptEnvironment;
aload 2
ldc Ljdk/nashorn/internal/codegen/Compiler;
invokevirtual jdk.nashorn.internal.runtime.Context.getLogger:(Ljava/lang/Class;)Ljdk/nashorn/internal/runtime/logging/DebugLogger;
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.this$0:Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.classBytes:[B
aload 1
invokestatic jdk.nashorn.internal.codegen.DumpBytecode.dumpBytecode:(Ljdk/nashorn/internal/runtime/ScriptEnvironment;Ljdk/nashorn/internal/runtime/logging/DebugLogger;[BLjava/lang/String;)V
6: aload 0
aload 1
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.this$0:Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.classBytes:[B
iconst_0
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.this$0:Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader;
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.classBytes:[B
arraylength
aload 0
getfield jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.val$protectionDomain:Ljava/security/ProtectionDomain;
invokevirtual jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2.defineClass:(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;
areturn
end local 2 7: StackMap locals:
StackMap stack:
new java.lang.ClassNotFoundException
dup
aload 1
invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/nashorn/internal/runtime/linker/JavaAdapterClassLoader$2;
0 8 1 name Ljava/lang/String;
5 7 2 ctx Ljdk/nashorn/internal/runtime/Context;
Exceptions:
throws java.lang.ClassNotFoundException
Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
name final
}
SourceFile: "JavaAdapterClassLoader.java"
EnclosingMethod: jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader.createClassLoader:(Ljava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/ClassLoader;
NestHost: jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader
InnerClasses:
jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2
jdk.nashorn.internal.runtime.linker.JavaAdapterClassLoader$2$1