final class com.oracle.truffle.polyglot.HostClassLoader$JarLoader implements com.oracle.truffle.polyglot.HostClassLoader$Loader
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.truffle.polyglot.HostClassLoader$JarLoader
super_class: java.lang.Object
{
private final com.oracle.truffle.api.TruffleFile root;
descriptor: Lcom/oracle/truffle/api/TruffleFile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile java.nio.channels.SeekableByteChannel channel;
descriptor: Ljava/nio/channels/SeekableByteChannel;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.util.Map<java.lang.String, java.util.Map<java.lang.String, com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils$Info>> content;
descriptor: Ljava/util/Map;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader$ZipUtils$Info;>;>;
void <init>(com.oracle.truffle.api.TruffleFile);
descriptor: (Lcom/oracle/truffle/api/TruffleFile;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.root:Lcom/oracle/truffle/api/TruffleFile;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader;
0 3 1 root Lcom/oracle/truffle/api/TruffleFile;
MethodParameters:
Name Flags
root
public com.oracle.truffle.polyglot.HostClassLoader$Resource findResource(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/truffle/polyglot/HostClassLoader$Resource;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.oracle.truffle.polyglot.HostClassLoader$JarLoader.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 1: aload 0
invokevirtual com.oracle.truffle.polyglot.HostClassLoader$JarLoader.getResourceMap:()Ljava/util/Map;
aload 2
iconst_0
aaload
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Map
astore 3
start local 3 2: aload 3
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: java.lang.String[] java.util.Map
StackMap stack:
aload 3
aload 2
iconst_1
aaload
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils$Info
astore 4
start local 4 5: aload 4
ifnonnull 7
6: aconst_null
areturn
7: StackMap locals: com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils$Info
StackMap stack:
new com.oracle.truffle.polyglot.HostClassLoader$JarLoader$1
dup
aload 0
aload 1
aload 4
invokespecial com.oracle.truffle.polyglot.HostClassLoader$JarLoader$1.<init>:(Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader;Ljava/lang/String;Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader$ZipUtils$Info;)V
8: areturn
end local 4 end local 3 9: StackMap locals: com.oracle.truffle.polyglot.HostClassLoader$JarLoader java.lang.String java.lang.String[]
StackMap stack: java.io.IOException
pop
10: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader;
0 11 1 name Ljava/lang/String;
1 11 2 parts [Ljava/lang/String;
2 9 3 folderContent Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader$ZipUtils$Info;>;
5 9 4 info Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader$ZipUtils$Info;
Exception table:
from to target type
1 3 9 Class java.io.IOException
4 6 9 Class java.io.IOException
7 8 9 Class java.io.IOException
MethodParameters:
Name Flags
name
public synchronized void close();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.channel:Ljava/nio/channels/SeekableByteChannel;
ifnull 2
1: aload 0
getfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.channel:Ljava/nio/channels/SeekableByteChannel;
invokeinterface java.nio.channels.SeekableByteChannel.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader;
Exceptions:
throws java.io.IOException
private java.nio.channels.SeekableByteChannel getChannel();
descriptor: ()Ljava/nio/channels/SeekableByteChannel;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.channel:Ljava/nio/channels/SeekableByteChannel;
astore 1
start local 1 1: aload 1
ifnonnull 11
2: aload 0
dup
astore 2
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.channel:Ljava/nio/channels/SeekableByteChannel;
astore 1
4: aload 1
ifnonnull 7
5: aload 0
getfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.root:Lcom/oracle/truffle/api/TruffleFile;
getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokevirtual com.oracle.truffle.api.TruffleFile.newByteChannel:(Ljava/util/Set;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/channels/SeekableByteChannel;
astore 1
6: aload 0
aload 1
putfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.channel:Ljava/nio/channels/SeekableByteChannel;
7: StackMap locals: java.nio.channels.SeekableByteChannel com.oracle.truffle.polyglot.HostClassLoader$JarLoader
StackMap stack:
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader;
1 12 1 res Ljava/nio/channels/SeekableByteChannel;
Exception table:
from to target type
3 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
private java.util.Map<java.lang.String, java.util.Map<java.lang.String, com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils$Info>> getResourceMap();
descriptor: ()Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.content:Ljava/util/Map;
astore 1
start local 1 1: aload 1
ifnonnull 11
2: aload 0
dup
astore 2
monitorenter
3: aload 0
getfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.content:Ljava/util/Map;
astore 1
4: aload 1
ifnonnull 7
5: aload 0
invokevirtual com.oracle.truffle.polyglot.HostClassLoader$JarLoader.getChannel:()Ljava/nio/channels/SeekableByteChannel;
invokestatic com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils.readEntries:(Ljava/nio/channels/SeekableByteChannel;)Ljava/util/Map;
astore 1
6: aload 0
aload 1
putfield com.oracle.truffle.polyglot.HostClassLoader$JarLoader.content:Ljava/util/Map;
7: StackMap locals: java.util.Map com.oracle.truffle.polyglot.HostClassLoader$JarLoader
StackMap stack:
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader;
1 12 1 res Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader$ZipUtils$Info;>;>;
Exception table:
from to target type
3 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Lcom/oracle/truffle/polyglot/HostClassLoader$JarLoader$ZipUtils$Info;>;>;
private static java.lang.String[] split(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 1
start local 1 1: iload 1
ifge 3
2: iconst_2
anewarray java.lang.String
dup
iconst_0
ldc ""
aastore
dup
iconst_1
aload 0
aastore
areturn
3: StackMap locals: int
StackMap stack:
iconst_2
anewarray java.lang.String
dup
iconst_0
4: aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
aastore
dup
iconst_1
5: aload 0
iload 1
iconst_1
iadd
aload 0
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
aastore
6: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 resourceName Ljava/lang/String;
1 7 1 index I
MethodParameters:
Name Flags
resourceName
}
SourceFile: "HostClassLoader.java"
NestHost: com.oracle.truffle.polyglot.HostClassLoader
InnerClasses:
private final JarLoader = com.oracle.truffle.polyglot.HostClassLoader$JarLoader of com.oracle.truffle.polyglot.HostClassLoader
com.oracle.truffle.polyglot.HostClassLoader$JarLoader$1
final ZipUtils = com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils of com.oracle.truffle.polyglot.HostClassLoader$JarLoader
final Info = com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils$Info of com.oracle.truffle.polyglot.HostClassLoader$JarLoader$ZipUtils
private abstract Loader = com.oracle.truffle.polyglot.HostClassLoader$Loader of com.oracle.truffle.polyglot.HostClassLoader
private abstract Resource = com.oracle.truffle.polyglot.HostClassLoader$Resource of com.oracle.truffle.polyglot.HostClassLoader