public class com.oracle.truffle.sl.test.SLSeparatedClassLoadersTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.sl.test.SLSeparatedClassLoadersTest
super_class: java.lang.Object
{
private java.lang.ClassLoader loader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/sl/test/SLSeparatedClassLoadersTest;
public void storeLoader();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
putfield com.oracle.truffle.sl.test.SLSeparatedClassLoadersTest.loader:Ljava/lang/ClassLoader;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLSeparatedClassLoadersTest;
RuntimeVisibleAnnotations:
org.junit.Before()
public void sdkAndTruffleLanguageAPIAndSLInSeparateClassLoaders();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=1
start local 0 0: ldc Lorg/graalvm/polyglot/Engine;
invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
astore 1
start local 1 1: iconst_1
anewarray java.lang.Object
dup
iconst_0
2: aload 1
aastore
invokestatic org.junit.Assume.assumeNotNull:([Ljava/lang/Object;)V
iconst_1
anewarray java.lang.Object
dup
iconst_0
3: aload 1
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
aastore
invokestatic org.junit.Assume.assumeNotNull:([Ljava/lang/Object;)V
4: aload 1
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
astore 2
start local 2 5: iconst_1
anewarray java.lang.Object
dup
iconst_0
6: aload 2
aastore
invokestatic org.junit.Assume.assumeNotNull:([Ljava/lang/Object;)V
7: ldc Lcom/oracle/truffle/api/Truffle;
invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
astore 3
start local 3 8: iconst_1
anewarray java.lang.Object
dup
iconst_0
9: aload 3
aastore
invokestatic org.junit.Assume.assumeNotNull:([Ljava/lang/Object;)V
10: ldc Lcom/oracle/truffle/sl/SLLanguage;
invokevirtual java.lang.Class.getProtectionDomain:()Ljava/security/ProtectionDomain;
invokevirtual java.security.ProtectionDomain.getCodeSource:()Ljava/security/CodeSource;
invokevirtual java.security.CodeSource.getLocation:()Ljava/net/URL;
astore 4
start local 4 11: iconst_1
anewarray java.lang.Object
dup
iconst_0
12: aload 4
aastore
invokestatic org.junit.Assume.assumeNotNull:([Ljava/lang/Object;)V
13: ldc Lorg/graalvm/polyglot/Engine;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 5
start local 5 14: new java.net.URLClassLoader
dup
iconst_1
anewarray java.net.URL
dup
iconst_0
aload 2
aastore
aload 5
invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
astore 6
start local 6 15: ldc "com.oracle.truffle.api.TruffleLanguage"
iconst_0
aload 6
invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
pop
16: iconst_1
istore 7
start local 7 17: goto 20
end local 7 StackMap locals: com.oracle.truffle.sl.test.SLSeparatedClassLoadersTest java.security.ProtectionDomain java.net.URL java.net.URL java.net.URL java.lang.ClassLoader java.net.URLClassLoader
StackMap stack: java.lang.ClassNotFoundException
18: pop
19: iconst_0
istore 7
start local 7 20: StackMap locals: int
StackMap stack:
iload 7
invokestatic org.junit.Assume.assumeFalse:(Z)V
21: new java.net.URLClassLoader
dup
iconst_1
anewarray java.net.URL
dup
iconst_0
aload 3
aastore
aload 6
invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
astore 8
start local 8 22: new java.net.URLClassLoader
dup
iconst_1
anewarray java.net.URL
dup
iconst_0
aload 4
aastore
aload 8
invokespecial java.net.URLClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;)V
astore 9
start local 9 23: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 9
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
24: aload 6
ldc Lorg/graalvm/polyglot/Engine;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.net.URLClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
astore 10
start local 10 25: aload 10
ldc "create"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
aconst_null
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 11
start local 11 26: ldc "Engine has been created"
aload 11
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
27: aload 10
ldc "getLanguages"
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
aload 11
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 12
start local 12 28: aload 12
ldc "sl"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 13
start local 13 29: new java.lang.StringBuilder
dup
ldc "SL language found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 13
invokestatic org.junit.Assert.assertNotNull:(Ljava/lang/String;Ljava/lang/Object;)V
30: return
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/oracle/truffle/sl/test/SLSeparatedClassLoadersTest;
1 31 1 sdkDomain Ljava/security/ProtectionDomain;
5 31 2 sdkURL Ljava/net/URL;
8 31 3 truffleURL Ljava/net/URL;
11 31 4 slURL Ljava/net/URL;
14 31 5 parent Ljava/lang/ClassLoader;
15 31 6 sdkLoader Ljava/net/URLClassLoader;
17 18 7 sdkLoaderLoadsTruffleLanguage Z
20 31 7 sdkLoaderLoadsTruffleLanguage Z
22 31 8 truffleLoader Ljava/net/URLClassLoader;
23 31 9 slLoader Ljava/net/URLClassLoader;
25 31 10 engineClass Ljava/lang/Class<*>;
26 31 11 engine Ljava/lang/Object;
28 31 12 languages Ljava/util/Map<**>;
29 31 13 lang Ljava/lang/Object;
Exception table:
from to target type
15 17 18 Class java.lang.ClassNotFoundException
Exceptions:
throws java.lang.Exception
RuntimeVisibleAnnotations:
org.junit.Test()
public void resetLoader();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield com.oracle.truffle.sl.test.SLSeparatedClassLoadersTest.loader:Ljava/lang/ClassLoader;
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/truffle/sl/test/SLSeparatedClassLoadersTest;
RuntimeVisibleAnnotations:
org.junit.After()
}
SourceFile: "SLSeparatedClassLoadersTest.java"