final class sun.tools.jar.Validator
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.tools.jar.Validator
super_class: java.lang.Object
{
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.Map<java.lang.String, sun.tools.jar.FingerPrint> fps;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lsun/tools/jar/FingerPrint;>;
private final sun.tools.jar.Main main;
descriptor: Lsun/tools/jar/Main;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.jar.JarFile jf;
descriptor: Ljava/util/jar/JarFile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int oldVersion;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String currentTopLevelName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private boolean isValid;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.util.Set<java.lang.String> concealedPkgs;
descriptor: Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Set<Ljava/lang/String;>;
private java.lang.module.ModuleDescriptor md;
descriptor: Ljava/lang/module/ModuleDescriptor;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mdName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
static java.util.Comparator<java.lang.String> ENTRYNAME_COMPARATOR;
descriptor: Ljava/util/Comparator;
flags: (0x0008) ACC_STATIC
Signature: Ljava/util/Comparator<Ljava/lang/String;>;
static java.util.Comparator<java.util.zip.ZipEntry> ENTRY_COMPARATOR;
descriptor: Ljava/util/Comparator;
flags: (0x0008) ACC_STATIC
Signature: Ljava/util/Comparator<Ljava/util/zip/ZipEntry;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "jar.debug"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
putstatic sun.tools.jar.Validator.DEBUG:Z
1: invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
sun/tools/jar/Validator.lambda$0(Ljava/lang/String;Ljava/lang/String;)I (6)
(Ljava/lang/String;Ljava/lang/String;)I
putstatic sun.tools.jar.Validator.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
2: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/util/zip/ZipEntry.getName()Ljava/lang/String; (5)
(Ljava/util/zip/ZipEntry;)Ljava/lang/String;
getstatic sun.tools.jar.Validator.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
3: putstatic sun.tools.jar.Validator.ENTRY_COMPARATOR:Ljava/util/Comparator;
4: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(sun.tools.jar.Main, java.util.jar.JarFile);
descriptor: (Lsun/tools/jar/Main;Ljava/util/jar/JarFile;)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 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Validator.fps:Ljava/util/Map;
2: aload 0
iconst_m1
putfield sun.tools.jar.Validator.oldVersion:I
3: aload 0
iconst_1
putfield sun.tools.jar.Validator.isValid:Z
4: aload 0
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
putfield sun.tools.jar.Validator.concealedPkgs:Ljava/util/Set;
5: aload 0
aload 1
putfield sun.tools.jar.Validator.main:Lsun/tools/jar/Main;
6: aload 0
aload 2
putfield sun.tools.jar.Validator.jf:Ljava/util/jar/JarFile;
7: aload 0
ldc "module-info.class"
invokevirtual sun.tools.jar.Validator.checkModuleDescriptor:(Ljava/lang/String;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/tools/jar/Validator;
0 9 1 main Lsun/tools/jar/Main;
0 9 2 jf Ljava/util/jar/JarFile;
MethodParameters:
Name Flags
main
jf
static boolean validate(sun.tools.jar.Main, java.util.jar.JarFile);
descriptor: (Lsun/tools/jar/Main;Ljava/util/jar/JarFile;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new sun.tools.jar.Validator
dup
aload 0
aload 1
invokespecial sun.tools.jar.Validator.<init>:(Lsun/tools/jar/Main;Ljava/util/jar/JarFile;)V
invokevirtual sun.tools.jar.Validator.validate:()Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 main Lsun/tools/jar/Main;
0 1 1 jf Ljava/util/jar/JarFile;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
main
jf
private boolean validate();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.tools.jar.Validator.jf:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.stream:()Ljava/util/stream/Stream;
1: invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
sun/tools/jar/Validator.lambda$2(Ljava/util/jar/JarEntry;)Z (6)
(Ljava/util/jar/JarEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
2: getstatic sun.tools.jar.Validator.ENTRY_COMPARATOR:Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
3: aload 0
invokedynamic accept(Lsun/tools/jar/Validator;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/tools/jar/Validator.lambda$3(Ljava/util/jar/JarEntry;)V (7)
(Ljava/util/jar/JarEntry;)V
invokeinterface java.util.stream.Stream.forEachOrdered:(Ljava/util/function/Consumer;)V
4: aload 0
getfield sun.tools.jar.Validator.isValid:Z
5: ireturn
6: StackMap locals:
StackMap stack: sun.tools.jar.Validator$InvalidJarException
astore 1
start local 1 7: aload 0
ldc "error.validator.bad.entry.name"
aload 1
invokevirtual sun.tools.jar.Validator$InvalidJarException.getMessage:()Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
end local 1 8: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/tools/jar/Validator;
7 8 1 e Lsun/tools/jar/Validator$InvalidJarException;
Exception table:
from to target type
0 5 6 Class sun.tools.jar.Validator$InvalidJarException
public void validate(java.util.jar.JarEntry);
descriptor: (Ljava/util/jar/JarEntry;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 4
2: aload 0
ldc "%s is a directory"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
3: return
4: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
ifeq 8
5: aload 2
aload 0
getfield sun.tools.jar.Validator.mdName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
6: aload 0
aload 2
invokevirtual sun.tools.jar.Validator.checkModuleDescriptor:(Ljava/lang/String;)V
7: StackMap locals:
StackMap stack:
return
8: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 9: aload 2
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 28
10: aload 2
ldc "/"
getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
istore 6
start local 6 11: iload 6
iconst_m1
if_icmpne 15
12: aload 0
ldc "error.validator.version.notnumber"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
13: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
14: return
15: StackMap locals: sun.tools.jar.Validator java.util.jar.JarEntry java.lang.String top top java.lang.String int
StackMap stack:
aload 2
getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
iload 6
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 5
16: aload 5
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 3
start local 3 17: goto 22
end local 3 StackMap locals:
StackMap stack: java.lang.NumberFormatException
18: pop
19: aload 0
ldc "error.validator.version.notnumber"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
20: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
21: return
start local 3 22: StackMap locals: sun.tools.jar.Validator java.util.jar.JarEntry java.lang.String int top java.lang.String int
StackMap stack:
iload 6
aload 2
invokevirtual java.lang.String.length:()I
if_icmpne 26
23: aload 0
ldc "error.validator.entryname.tooshort"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
24: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
25: return
26: StackMap locals:
StackMap stack:
aload 2
iload 6
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
end local 6 start local 4 27: goto 30
end local 4 end local 3 28: StackMap locals: sun.tools.jar.Validator java.util.jar.JarEntry java.lang.String top top java.lang.String
StackMap stack:
iconst_0
istore 3
start local 3 29: aload 2
astore 4
start local 4 30: StackMap locals: sun.tools.jar.Validator java.util.jar.JarEntry java.lang.String int java.lang.String java.lang.String
StackMap stack:
aload 0
ldc "\n===================\nversion %d %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 2
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
31: aload 0
getfield sun.tools.jar.Validator.oldVersion:I
iload 3
if_icmpeq 36
32: aload 0
iload 3
putfield sun.tools.jar.Validator.oldVersion:I
33: aload 0
aconst_null
putfield sun.tools.jar.Validator.currentTopLevelName:Ljava/lang/String;
34: aload 0
getfield sun.tools.jar.Validator.md:Ljava/lang/module/ModuleDescriptor;
ifnonnull 36
aload 5
ifnull 36
35: aload 0
new java.lang.StringBuilder
dup
ldc "META-INF/versions/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "module-info.class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.checkModuleDescriptor:(Ljava/lang/String;)V
36: StackMap locals:
StackMap stack:
aconst_null
astore 7
aconst_null
astore 8
37: aload 0
getfield sun.tools.jar.Validator.jf:Ljava/util/jar/JarFile;
aload 1
invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
astore 9
start local 9 38: new sun.tools.jar.FingerPrint
dup
aload 4
aload 9
invokevirtual java.io.InputStream.readAllBytes:()[B
invokespecial sun.tools.jar.FingerPrint.<init>:(Ljava/lang/String;[B)V
astore 6
start local 6 39: aload 9
ifnull 49
aload 9
invokevirtual java.io.InputStream.close:()V
goto 49
end local 6 StackMap locals: sun.tools.jar.Validator java.util.jar.JarEntry java.lang.String int java.lang.String java.lang.String top java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
40: astore 7
aload 9
ifnull 41
aload 9
invokevirtual java.io.InputStream.close:()V
end local 9 StackMap locals:
StackMap stack:
41: aload 7
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
42: astore 8
aload 7
ifnonnull 43
aload 8
astore 7
goto 44
StackMap locals:
StackMap stack:
43: aload 7
aload 8
if_acmpeq 44
aload 7
aload 8
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
44: aload 7
athrow
StackMap locals: sun.tools.jar.Validator java.util.jar.JarEntry java.lang.String int java.lang.String java.lang.String
StackMap stack: java.io.IOException
45: astore 7
start local 7 46: aload 0
aload 7
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
47: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
48: return
end local 7 start local 6 49: StackMap locals: sun.tools.jar.FingerPrint
StackMap stack:
aload 6
invokevirtual sun.tools.jar.FingerPrint.name:()Ljava/lang/String;
astore 7
start local 7 50: iload 3
ifne 67
51: aload 0
ldc "base entry found"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
52: aload 6
invokevirtual sun.tools.jar.FingerPrint.isNestedClass:()Z
ifeq 60
53: aload 0
ldc "nested class found"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
54: aload 6
invokevirtual sun.tools.jar.FingerPrint.topLevelName:()Ljava/lang/String;
aload 0
getfield sun.tools.jar.Validator.currentTopLevelName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 57
55: aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 7
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
56: return
57: StackMap locals: java.lang.String
StackMap stack:
aload 0
ldc "error.validator.isolated.nested.class"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
58: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
59: return
60: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.tools.jar.FingerPrint.isClass:()Z
ifeq 65
61: aload 0
aload 6
invokevirtual sun.tools.jar.FingerPrint.topLevelName:()Ljava/lang/String;
putfield sun.tools.jar.Validator.currentTopLevelName:Ljava/lang/String;
62: aload 0
aload 2
aload 4
aload 7
invokevirtual sun.tools.jar.Validator.checkInternalName:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
ifne 65
63: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
64: return
65: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 7
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
66: return
67: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.tools.jar.FingerPrint
astore 8
start local 8 68: aload 0
ldc "looking for match"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
69: aload 8
ifnonnull 90
70: aload 0
ldc "no match found"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
71: aload 6
invokevirtual sun.tools.jar.FingerPrint.isClass:()Z
ifeq 87
72: aload 6
invokevirtual sun.tools.jar.FingerPrint.isNestedClass:()Z
ifeq 76
73: aload 0
iload 3
aload 2
aload 7
aload 6
invokevirtual sun.tools.jar.Validator.checkNestedClass:(ILjava/lang/String;Ljava/lang/String;Lsun/tools/jar/FingerPrint;)Z
ifne 75
74: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
75: StackMap locals: sun.tools.jar.FingerPrint
StackMap stack:
return
76: StackMap locals:
StackMap stack:
aload 6
invokevirtual sun.tools.jar.FingerPrint.isPublicClass:()Z
ifeq 83
77: aload 0
aload 7
invokevirtual sun.tools.jar.Validator.isConcealed:(Ljava/lang/String;)Z
ifne 81
78: aload 0
ldc "error.validator.new.public.class"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
79: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
80: return
81: StackMap locals:
StackMap stack:
aload 0
ldc "warn.validator.concealed.public.class"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.warn:(Ljava/lang/String;)V
82: aload 0
ldc "%s is a public class entry in a concealed package"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
83: StackMap locals:
StackMap stack:
aload 0
ldc "%s is a non-public class entry"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
84: aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 7
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
85: aload 0
aload 6
invokevirtual sun.tools.jar.FingerPrint.topLevelName:()Ljava/lang/String;
putfield sun.tools.jar.Validator.currentTopLevelName:Ljava/lang/String;
86: return
87: StackMap locals:
StackMap stack:
aload 0
ldc "%s is a resource entry"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
88: aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 7
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
89: return
90: StackMap locals:
StackMap stack:
aload 0
ldc "match found"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
91: aload 6
aload 8
invokevirtual sun.tools.jar.FingerPrint.isIdentical:(Lsun/tools/jar/FingerPrint;)Z
ifeq 94
92: aload 0
ldc "warn.validator.identical.entry"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.warn:(Ljava/lang/String;)V
93: return
94: StackMap locals:
StackMap stack:
aload 0
ldc "sha1 not equal -- different bytes"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
95: aload 6
invokevirtual sun.tools.jar.FingerPrint.isClass:()Z
ifeq 116
96: aload 6
invokevirtual sun.tools.jar.FingerPrint.isNestedClass:()Z
ifeq 100
97: aload 0
iload 3
aload 2
aload 7
aload 6
invokevirtual sun.tools.jar.Validator.checkNestedClass:(ILjava/lang/String;Ljava/lang/String;Lsun/tools/jar/FingerPrint;)Z
ifne 99
98: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
99: StackMap locals:
StackMap stack:
return
100: StackMap locals:
StackMap stack:
aload 0
ldc "%s is a class entry"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
101: aload 6
aload 8
invokevirtual sun.tools.jar.FingerPrint.isCompatibleVersion:(Lsun/tools/jar/FingerPrint;)Z
ifne 105
102: aload 0
ldc "error.validator.incompatible.class.version"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
103: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
104: return
105: StackMap locals:
StackMap stack:
aload 6
aload 8
invokevirtual sun.tools.jar.FingerPrint.isSameAPI:(Lsun/tools/jar/FingerPrint;)Z
ifne 109
106: aload 0
ldc "error.validator.different.api"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
107: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
108: return
109: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 4
aload 7
invokevirtual sun.tools.jar.Validator.checkInternalName:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
ifne 112
110: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
111: return
112: StackMap locals:
StackMap stack:
aload 0
ldc "fingerprints same -- same api"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
113: aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 7
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
114: aload 0
aload 6
invokevirtual sun.tools.jar.FingerPrint.topLevelName:()Ljava/lang/String;
putfield sun.tools.jar.Validator.currentTopLevelName:Ljava/lang/String;
115: return
116: StackMap locals:
StackMap stack:
aload 0
ldc "%s is a resource"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
117: aload 0
ldc "warn.validator.resources.with.same.name"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.warn:(Ljava/lang/String;)V
118: aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 7
aload 6
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
119: return
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 120 0 this Lsun/tools/jar/Validator;
0 120 1 je Ljava/util/jar/JarEntry;
1 120 2 entryName Ljava/lang/String;
17 18 3 version I
22 28 3 version I
29 120 3 version I
27 28 4 basename Ljava/lang/String;
30 120 4 basename Ljava/lang/String;
9 120 5 versionStr Ljava/lang/String;
11 27 6 n I
39 40 6 fp Lsun/tools/jar/FingerPrint;
49 120 6 fp Lsun/tools/jar/FingerPrint;
38 41 9 is Ljava/io/InputStream;
46 49 7 x Ljava/io/IOException;
50 120 7 internalName Ljava/lang/String;
68 120 8 matchFp Lsun/tools/jar/FingerPrint;
Exception table:
from to target type
16 17 18 Class java.lang.NumberFormatException
38 39 40 any
37 42 42 any
36 45 45 Class java.io.IOException
MethodParameters:
Name Flags
je
private void checkModuleDescriptor(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=14, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Validator.jf:Ljava/util/jar/JarFile;
aload 1
invokevirtual java.util.jar.JarFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
astore 2
start local 2 1: aload 2
ifnull 73
2: aconst_null
astore 3
aconst_null
astore 4
3: aload 0
getfield sun.tools.jar.Validator.jf:Ljava/util/jar/JarFile;
aload 2
invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
astore 5
start local 5 4: aload 5
invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/io/InputStream;)Ljava/lang/module/ModuleDescriptor;
astore 6
start local 6 5: aload 0
getfield sun.tools.jar.Validator.md:Ljava/lang/module/ModuleDescriptor;
astore 7
start local 7 6: aload 7
ifnonnull 23
7: aload 0
new java.util.HashSet
dup
aload 6
invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putfield sun.tools.jar.Validator.concealedPkgs:Ljava/util/Set;
8: aload 6
invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/module/ModuleDescriptor$Exports.source()Ljava/lang/String; (5)
(Ljava/lang/module/ModuleDescriptor$Exports;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
aload 0
getfield sun.tools.jar.Validator.concealedPkgs:Ljava/util/Set;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
9: aload 6
invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/module/ModuleDescriptor$Opens.source()Ljava/lang/String; (5)
(Ljava/lang/module/ModuleDescriptor$Opens;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
aload 0
getfield sun.tools.jar.Validator.concealedPkgs:Ljava/util/Set;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
java/util/Set.remove(Ljava/lang/Object;)Z (9 itf)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
10: aload 6
invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/lang/module/ModuleDescriptor$Provides.providers()Ljava/util/List; (5)
(Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/util/List;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
11: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
java/util/Collection.stream()Ljava/util/stream/Stream; (9 itf)
(Ljava/util/List;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
12: aload 0
invokedynamic test(Lsun/tools/jar/Validator;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
sun/tools/jar/Validator.lambda$10(Ljava/lang/String;)Z (7)
(Ljava/lang/String;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
13: aload 0
invokedynamic accept(Lsun/tools/jar/Validator;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
sun/tools/jar/Validator.lambda$11(Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.peek:(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
14: invokeinterface java.util.stream.Stream.count:()J
lconst_0
15: lcmp
ifeq 19
16: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
17: aload 5
ifnull 18
aload 5
invokevirtual java.io.InputStream.close:()V
18: StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor
StackMap stack:
return
19: StackMap locals:
StackMap stack:
aload 0
aload 6
putfield sun.tools.jar.Validator.md:Ljava/lang/module/ModuleDescriptor;
20: aload 0
aload 1
putfield sun.tools.jar.Validator.mdName:Ljava/lang/String;
21: aload 5
ifnull 22
aload 5
invokevirtual java.io.InputStream.close:()V
22: StackMap locals:
StackMap stack:
return
23: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
aload 6
invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 26
24: aload 0
ldc "error.validator.info.name.notequal"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
25: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
26: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
aload 6
invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifne 49
27: aload 7
invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
astore 10
start local 10 28: aload 6
invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 12
goto 39
StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor top top java.util.Set top java.util.Iterator
StackMap stack:
29: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.module.ModuleDescriptor$Requires
astore 11
start local 11 30: aload 10
aload 11
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 32
31: goto 39
32: StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor top top java.util.Set java.lang.module.ModuleDescriptor$Requires java.util.Iterator
StackMap stack:
aload 11
invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
getstatic java.lang.module.ModuleDescriptor$Requires$Modifier.TRANSITIVE:Ljava/lang/module/ModuleDescriptor$Requires$Modifier;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 36
33: aload 0
ldc "error.validator.info.requires.transitive"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
34: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
35: goto 39
StackMap locals:
StackMap stack:
36: aload 11
invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
invokestatic sun.tools.jar.Validator.isPlatformModule:(Ljava/lang/String;)Z
ifne 39
37: aload 0
ldc "error.validator.info.requires.added"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
38: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
end local 11 39: StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor top top java.util.Set top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
40: aload 10
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 12
goto 48
StackMap locals:
StackMap stack:
41: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.module.ModuleDescriptor$Requires
astore 11
start local 11 42: aload 6
invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
astore 13
start local 13 43: aload 13
aload 11
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 45
44: goto 48
45: StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor top top java.util.Set java.lang.module.ModuleDescriptor$Requires java.util.Iterator java.util.Set
StackMap stack:
aload 11
invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
invokestatic sun.tools.jar.Validator.isPlatformModule:(Ljava/lang/String;)Z
ifne 48
46: aload 0
ldc "error.validator.info.requires.dropped"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
47: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
end local 13 end local 11 48: StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor top top java.util.Set top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 41
end local 10 49: StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry java.lang.Throwable java.lang.Throwable java.io.InputStream java.lang.module.ModuleDescriptor java.lang.module.ModuleDescriptor
StackMap stack:
aload 7
invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
aload 6
invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifne 52
50: aload 0
ldc "error.validator.info.exports.notequal"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
51: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
52: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
aload 6
invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifne 55
53: aload 0
ldc "error.validator.info.opens.notequal"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
54: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
55: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
aload 6
invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifne 58
56: aload 0
ldc "error.validator.info.provides.notequal"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
57: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
58: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
aload 6
invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
invokevirtual java.util.Optional.equals:(Ljava/lang/Object;)Z
ifne 61
59: aload 0
ldc "error.validator.info.manclass.notequal"
aload 2
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
60: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
61: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.lang.module.ModuleDescriptor.version:()Ljava/util/Optional;
aload 6
invokevirtual java.lang.module.ModuleDescriptor.version:()Ljava/util/Optional;
invokevirtual java.util.Optional.equals:(Ljava/lang/Object;)Z
ifne 64
62: aload 0
ldc "error.validator.info.version.notequal"
aload 2
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
63: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
end local 7 end local 6 64: StackMap locals:
StackMap stack:
aload 5
ifnull 73
aload 5
invokevirtual java.io.InputStream.close:()V
goto 73
StackMap locals:
StackMap stack: java.lang.Throwable
65: astore 3
aload 5
ifnull 66
aload 5
invokevirtual java.io.InputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
66: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
67: astore 4
aload 3
ifnonnull 68
aload 4
astore 3
goto 69
StackMap locals:
StackMap stack:
68: aload 3
aload 4
if_acmpeq 69
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
69: aload 3
athrow
StackMap locals: sun.tools.jar.Validator java.lang.String java.util.zip.ZipEntry
StackMap stack: java.lang.Exception
70: astore 3
start local 3 71: aload 0
new java.lang.StringBuilder
dup
aload 3
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
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;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
72: aload 0
iconst_0
putfield sun.tools.jar.Validator.isValid:Z
end local 3 73: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 this Lsun/tools/jar/Validator;
0 74 1 miName Ljava/lang/String;
1 74 2 je Ljava/util/zip/ZipEntry;
4 66 5 jis Ljava/io/InputStream;
5 64 6 md Ljava/lang/module/ModuleDescriptor;
6 64 7 base Ljava/lang/module/ModuleDescriptor;
28 49 10 baseRequires Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;
30 39 11 r Ljava/lang/module/ModuleDescriptor$Requires;
42 48 11 r Ljava/lang/module/ModuleDescriptor$Requires;
43 48 13 mdRequires Ljava/util/Set<Ljava/lang/module/ModuleDescriptor$Requires;>;
71 73 3 x Ljava/lang/Exception;
Exception table:
from to target type
4 17 65 any
19 21 65 any
23 64 65 any
3 18 67 any
19 22 67 any
23 67 67 any
2 18 70 Class java.lang.Exception
19 22 70 Class java.lang.Exception
23 70 70 Class java.lang.Exception
MethodParameters:
Name Flags
miName
private static boolean isPlatformModule(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "java."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 1
aload 0
ldc "jdk."
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 1
iconst_0
ireturn
StackMap locals:
StackMap stack:
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private boolean checkInternalName(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
invokevirtual sun.tools.jar.Validator.className:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 1: aload 3
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 3
2: iconst_1
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
ldc "error.validator.names.mismatch"
4: aload 1
aload 3
ldc "/"
ldc "."
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
5: invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
6: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/jar/Validator;
0 7 1 entryName Ljava/lang/String;
0 7 2 basename Ljava/lang/String;
0 7 3 internalName Ljava/lang/String;
1 7 4 className Ljava/lang/String;
MethodParameters:
Name Flags
entryName
basename
internalName
private boolean checkNestedClass(int, java.lang.String, java.lang.String, sun.tools.jar.FingerPrint);
descriptor: (ILjava/lang/String;Ljava/lang/String;Lsun/tools/jar/FingerPrint;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
ldc "%s is a nested class entry in top level class %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 4
invokevirtual sun.tools.jar.FingerPrint.topLevelName:()Ljava/lang/String;
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
1: aload 4
invokevirtual sun.tools.jar.FingerPrint.topLevelName:()Ljava/lang/String;
aload 0
getfield sun.tools.jar.Validator.currentTopLevelName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
2: aload 0
ldc "%s (top level class) was accepted"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
invokevirtual sun.tools.jar.FingerPrint.topLevelName:()Ljava/lang/String;
aastore
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
3: aload 0
getfield sun.tools.jar.Validator.fps:Ljava/util/Map;
aload 3
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 0
ldc "top level class was not accepted"
iconst_0
anewarray java.lang.Object
invokevirtual sun.tools.jar.Validator.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
6: aload 0
ldc "error.validator.isolated.nested.class"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
7: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/jar/Validator;
0 8 1 version I
0 8 2 entryName Ljava/lang/String;
0 8 3 internalName Ljava/lang/String;
0 8 4 fp Lsun/tools/jar/FingerPrint;
MethodParameters:
Name Flags
version
entryName
internalName
fp
private java.lang.String className(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc ".class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 1
aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
bipush 6
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: java.lang.String
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/Validator;
0 3 1 entryName Ljava/lang/String;
MethodParameters:
Name Flags
entryName
private boolean isConcealed(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Validator.concealedPkgs:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 2
start local 2 3: iload 2
iconst_m1
if_icmpeq 4
aload 1
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
goto 5
StackMap locals: int
StackMap stack:
4: ldc ""
StackMap locals:
StackMap stack: java.lang.String
5: astore 3
start local 3 6: aload 0
getfield sun.tools.jar.Validator.concealedPkgs:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/jar/Validator;
0 7 1 internalName Ljava/lang/String;
3 7 2 idx I
6 7 3 pkgName Ljava/lang/String;
MethodParameters:
Name Flags
internalName
private void debug(java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.tools.jar.Validator.DEBUG:Z
ifeq 1
getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 1
aload 2
invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
1: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Validator;
0 2 1 fmt Ljava/lang/String;
0 2 2 args [Ljava/lang/Object;
MethodParameters:
Name Flags
fmt
args
private void error(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Validator.main:Lsun/tools/jar/Main;
aload 1
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Validator;
0 2 1 msg Ljava/lang/String;
MethodParameters:
Name Flags
msg
private void warn(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Validator.main:Lsun/tools/jar/Main;
aload 1
invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Validator;
0 2 1 msg Ljava/lang/String;
MethodParameters:
Name Flags
msg
private static int lambda$0(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=11, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
istore 2
start local 2 2: aload 1
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
istore 3
start local 3 3: iload 2
ifeq 4
iload 3
ifne 4
iconst_1
ireturn
4: StackMap locals: int int
StackMap stack:
iload 2
ifne 5
iload 3
ifeq 5
iconst_m1
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 6: iload 2
ifeq 13
iload 3
ifeq 13
7: ldc "META-INF/versions/"
invokevirtual java.lang.String.length:()I
istore 4
8: aload 0
bipush 47
iload 4
invokevirtual java.lang.String.indexOf:(II)I
istore 5
start local 5 9: aload 1
bipush 47
iload 4
invokevirtual java.lang.String.indexOf:(II)I
istore 6
start local 6 10: iload 5
iconst_m1
if_icmpne 11
new sun.tools.jar.Validator$InvalidJarException
dup
aload 0
invokespecial sun.tools.jar.Validator$InvalidJarException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: int int int
StackMap stack:
iload 6
iconst_m1
if_icmpne 12
new sun.tools.jar.Validator$InvalidJarException
dup
aload 1
invokespecial sun.tools.jar.Validator$InvalidJarException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
iload 5
iload 6
if_icmpeq 13
iload 5
iload 6
isub
ireturn
end local 6 end local 5 13: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
istore 5
start local 5 14: aload 1
invokevirtual java.lang.String.length:()I
istore 6
start local 6 15: iload 5
iload 6
invokestatic java.lang.Math.min:(II)I
istore 7
start local 7 16: iload 4
istore 8
start local 8 17: goto 25
18: StackMap locals: java.lang.String java.lang.String int int int int int int int
StackMap stack:
aload 0
iload 8
invokevirtual java.lang.String.charAt:(I)C
istore 9
start local 9 19: aload 1
iload 8
invokevirtual java.lang.String.charAt:(I)C
istore 10
start local 10 20: iload 9
iload 10
if_icmpeq 24
21: iload 9
bipush 36
if_icmpne 22
iload 10
bipush 46
if_icmpne 22
iconst_1
ireturn
22: StackMap locals: int int
StackMap stack:
iload 9
bipush 46
if_icmpne 23
iload 10
bipush 36
if_icmpne 23
iconst_m1
ireturn
23: StackMap locals:
StackMap stack:
iload 9
iload 10
isub
ireturn
end local 10 end local 9 24: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
25: iload 8
iload 7
if_icmplt 18
end local 8 26: iload 5
iload 6
isub
ireturn
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 27 0 s1 Ljava/lang/String;
0 27 1 s2 Ljava/lang/String;
2 27 2 b1 Z
3 27 3 b2 Z
6 27 4 n I
9 13 5 i1 I
10 13 6 i2 I
14 27 5 l1 I
15 27 6 l2 I
16 27 7 lim I
17 26 8 k I
19 24 9 c1 C
20 24 10 c2 C
private static boolean lambda$2(java.util.jar.JarEntry);
descriptor: (Ljava/util/jar/JarEntry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.jar.JarEntry.isDirectory:()Z
ifne 2
1: aload 0
invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
ldc "META-INF/MANIFEST.MF"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 e Ljava/util/jar/JarEntry;
private void lambda$3(java.util.jar.JarEntry);
descriptor: (Ljava/util/jar/JarEntry;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual sun.tools.jar.Validator.validate:(Ljava/util/jar/JarEntry;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jar/Validator;
0 1 1 e Ljava/util/jar/JarEntry;
private boolean lambda$10(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Validator.jf:Ljava/util/jar/JarFile;
aload 1
invokestatic sun.tools.jar.Main.toBinaryName:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.jar.JarFile.getEntry:(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/Validator;
0 3 1 p Ljava/lang/String;
private void lambda$11(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "error.missing.provider"
aload 1
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Validator.error:(Ljava/lang/String;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jar/Validator;
0 1 1 p Ljava/lang/String;
}
SourceFile: "Validator.java"
NestMembers:
sun.tools.jar.Validator$InvalidJarException
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final Exports = java.lang.module.ModuleDescriptor$Exports of java.lang.module.ModuleDescriptor
public final Opens = java.lang.module.ModuleDescriptor$Opens of java.lang.module.ModuleDescriptor
public final Provides = java.lang.module.ModuleDescriptor$Provides of java.lang.module.ModuleDescriptor
public final Requires = java.lang.module.ModuleDescriptor$Requires of java.lang.module.ModuleDescriptor
public final Modifier = java.lang.module.ModuleDescriptor$Requires$Modifier of java.lang.module.ModuleDescriptor$Requires
public final Version = java.lang.module.ModuleDescriptor$Version of java.lang.module.ModuleDescriptor
private InvalidJarException = sun.tools.jar.Validator$InvalidJarException of sun.tools.jar.Validator