public class sun.misc.MetaIndex
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.misc.MetaIndex
super_class: java.lang.Object
{
private static volatile java.util.Map<java.io.File, sun.misc.MetaIndex> jarMap;
descriptor: Ljava/util/Map;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/io/File;Lsun/misc/MetaIndex;>;
private java.lang.String[] contents;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean isClassOnlyJar;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lsun/misc/MetaIndex;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.misc.MetaIndex.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public static sun.misc.MetaIndex forJar(java.io.File);
descriptor: (Ljava/io/File;)Lsun/misc/MetaIndex;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic sun.misc.MetaIndex.getJarMap:()Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.misc.MetaIndex
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 jar Ljava/io/File;
MethodParameters:
Name Flags
jar
public static synchronized void registerDirectory(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=8, args_size=1
start local 0 0: new java.io.File
dup
aload 0
ldc "meta-index"
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
invokevirtual java.io.File.exists:()Z
ifeq 39
2: new java.io.BufferedReader
dup
new java.io.FileReader
dup
aload 1
invokespecial java.io.FileReader.<init>:(Ljava/io/File;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
astore 2
start local 2 3: aconst_null
astore 3
start local 3 4: aconst_null
astore 4
start local 4 5: iconst_0
istore 5
start local 5 6: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 7: invokestatic sun.misc.MetaIndex.getJarMap:()Ljava/util/Map;
astore 7
start local 7 8: aload 0
invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
astore 0
9: aload 2
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 3
10: aload 3
ifnull 12
11: aload 3
ldc "% VERSION 2"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 31
12: StackMap locals: java.io.File java.io.File java.io.BufferedReader java.lang.String java.lang.String int java.util.List java.util.Map
StackMap stack:
aload 2
invokevirtual java.io.BufferedReader.close:()V
13: return
14: StackMap locals:
StackMap stack:
aload 3
iconst_0
invokevirtual java.lang.String.charAt:(I)C
lookupswitch { // 4
33: 15
35: 15
37: 29
64: 15
default: 30
}
15: StackMap locals:
StackMap stack:
aload 4
ifnull 22
aload 6
invokeinterface java.util.List.size:()I
ifle 22
16: aload 7
new java.io.File
dup
aload 0
aload 4
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
17: new sun.misc.MetaIndex
dup
aload 6
18: iload 5
19: invokespecial sun.misc.MetaIndex.<init>:(Ljava/util/List;Z)V
20: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: aload 6
invokeinterface java.util.List.clear:()V
22: StackMap locals:
StackMap stack:
aload 3
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
23: aload 3
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 33
if_icmpne 26
24: iconst_1
istore 5
25: goto 31
StackMap locals:
StackMap stack:
26: iload 5
ifeq 31
27: iconst_0
istore 5
28: goto 31
29: StackMap locals:
StackMap stack:
goto 31
30: StackMap locals:
StackMap stack:
aload 6
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
31: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
dup
astore 3
ifnonnull 14
32: aload 4
ifnull 36
aload 6
invokeinterface java.util.List.size:()I
ifle 36
33: aload 7
new java.io.File
dup
aload 0
aload 4
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
34: new sun.misc.MetaIndex
dup
aload 6
iload 5
invokespecial sun.misc.MetaIndex.<init>:(Ljava/util/List;Z)V
35: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
36: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.BufferedReader.close:()V
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 37: goto 39
StackMap locals: java.io.File java.io.File
StackMap stack: java.io.IOException
38: pop
39: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 dir Ljava/io/File;
1 40 1 indexFile Ljava/io/File;
3 37 2 reader Ljava/io/BufferedReader;
4 37 3 line Ljava/lang/String;
5 37 4 curJarName Ljava/lang/String;
6 37 5 isCurJarContainClassOnly Z
7 37 6 contents Ljava/util/List<Ljava/lang/String;>;
8 37 7 map Ljava/util/Map<Ljava/io/File;Lsun/misc/MetaIndex;>;
Exception table:
from to target type
2 13 38 Class java.io.IOException
14 37 38 Class java.io.IOException
MethodParameters:
Name Flags
dir
public boolean mayContain(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.misc.MetaIndex.isClassOnlyJar:Z
ifeq 2
aload 1
ldc ".class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.MetaIndex.contents:[Ljava/lang/String;
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: goto 8
5: StackMap locals: java.lang.String[] int
StackMap stack:
aload 1
aload 2
iload 3
aaload
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
aload 2
arraylength
if_icmplt 5
end local 3 9: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/misc/MetaIndex;
0 10 1 entry Ljava/lang/String;
3 10 2 conts [Ljava/lang/String;
4 9 3 i I
MethodParameters:
Name Flags
entry
private void <init>(java.util.List<java.lang.String>, );
descriptor: (Ljava/util/List;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, 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 1
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
3: StackMap locals: sun.misc.MetaIndex java.util.List int
StackMap stack:
aload 0
aload 1
iconst_0
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
putfield sun.misc.MetaIndex.contents:[Ljava/lang/String;
4: aload 0
iload 2
putfield sun.misc.MetaIndex.isClassOnlyJar:Z
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/misc/MetaIndex;
0 6 1 entries Ljava/util/List<Ljava/lang/String;>;
0 6 2 isClassOnlyJar Z
Exceptions:
throws java.lang.IllegalArgumentException
Signature: (Ljava/util/List<Ljava/lang/String;>;Z)V
MethodParameters:
Name Flags
entries
isClassOnlyJar
private static java.util.Map<java.io.File, sun.misc.MetaIndex> getJarMap();
descriptor: ()Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: getstatic sun.misc.MetaIndex.jarMap:Ljava/util/Map;
ifnonnull 8
1: ldc Lsun/misc/MetaIndex;
dup
astore 0
monitorenter
2: getstatic sun.misc.MetaIndex.jarMap:Ljava/util/Map;
ifnonnull 4
3: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putstatic sun.misc.MetaIndex.jarMap:Ljava/util/Map;
4: StackMap locals: java.lang.Class
StackMap stack:
aload 0
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 0
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
getstatic sun.misc.MetaIndex.$assertionsDisabled:Z
ifne 9
getstatic sun.misc.MetaIndex.jarMap:Ljava/util/Map;
ifnonnull 9
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
getstatic sun.misc.MetaIndex.jarMap:Ljava/util/Map;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 5 6 any
6 7 6 any
Signature: ()Ljava/util/Map<Ljava/io/File;Lsun/misc/MetaIndex;>;
}
SourceFile: "MetaIndex.java"