public class sun.tools.jar.Main
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.tools.jar.Main
super_class: java.lang.Object
{
java.lang.String program;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.io.PrintWriter out;
descriptor: Ljava/io/PrintWriter;
flags: (0x0000)
java.io.PrintWriter err;
descriptor: Ljava/io/PrintWriter;
flags: (0x0000)
java.lang.String fname;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String mname;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String ename;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String zname;
descriptor: Ljava/lang/String;
flags: (0x0000)
java.lang.String rootjar;
descriptor: Ljava/lang/String;
flags: (0x0000)
private static final int BASE_VERSION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
java.util.Map<java.lang.String, sun.tools.jar.Main$Entry> entryMap;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/String;Lsun/tools/jar/Main$Entry;>;
java.util.Set<sun.tools.jar.Main$Entry> entries;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Lsun/tools/jar/Main$Entry;>;
java.util.Map<java.lang.String, byte[]> moduleInfos;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/String;[B>;
java.util.Map<java.lang.Integer, java.util.Set<java.lang.String>> pathsMap;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/Integer;Ljava/util/Set<Ljava/lang/String;>;>;
java.util.Map<java.lang.Integer, java.lang.String[]> filesMap;
descriptor: Ljava/util/Map;
flags: (0x0000)
Signature: Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
boolean isMultiRelease;
descriptor: Z
flags: (0x0000)
int releaseValue;
descriptor: I
flags: (0x0000)
boolean cflag;
descriptor: Z
flags: (0x0000)
boolean uflag;
descriptor: Z
flags: (0x0000)
boolean xflag;
descriptor: Z
flags: (0x0000)
boolean tflag;
descriptor: Z
flags: (0x0000)
boolean vflag;
descriptor: Z
flags: (0x0000)
boolean flag0;
descriptor: Z
flags: (0x0000)
boolean Mflag;
descriptor: Z
flags: (0x0000)
boolean iflag;
descriptor: Z
flags: (0x0000)
boolean nflag;
descriptor: Z
flags: (0x0000)
boolean pflag;
descriptor: Z
flags: (0x0000)
boolean dflag;
descriptor: Z
flags: (0x0000)
boolean suppressDeprecateMsg;
descriptor: Z
flags: (0x0000)
java.util.function.Consumer<java.io.PrintWriter> info;
descriptor: Ljava/util/function/Consumer;
flags: (0x0000)
Signature: Ljava/util/function/Consumer<Ljava/io/PrintWriter;>;
java.lang.module.ModuleDescriptor$Version moduleVersion;
descriptor: Ljava/lang/module/ModuleDescriptor$Version;
flags: (0x0000)
java.util.regex.Pattern modulesToHash;
descriptor: Ljava/util/regex/Pattern;
flags: (0x0000)
jdk.internal.module.ModuleResolution moduleResolution;
descriptor: Ljdk/internal/module/ModuleResolution;
flags: (0x0000)
java.lang.module.ModuleFinder moduleFinder;
descriptor: Ljava/lang/module/ModuleFinder;
flags: (0x0000)
static final java.lang.String MODULE_INFO;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "module-info.class"
static final java.lang.String MANIFEST_DIR;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "META-INF/"
static final java.lang.String VERSIONS_DIR;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "META-INF/versions/"
static final java.lang.String VERSION;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "1.0"
static final int VERSIONS_DIR_LENGTH;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static java.util.ResourceBundle rsrc;
descriptor: Ljava/util/ResourceBundle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final boolean useExtractionTime;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private boolean ok;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte[] copyBuf;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private java.util.HashSet<java.lang.String> jarPaths;
descriptor: Ljava/util/HashSet;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/HashSet<Ljava/lang/String;>;
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 final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc Lsun/tools/jar/Main;
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.tools.jar.Main.$assertionsDisabled:Z
3: ldc "META-INF/versions/"
invokevirtual java.lang.String.length:()I
putstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
4: ldc "sun.tools.jar.useExtractionTime"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
5: putstatic sun.tools.jar.Main.useExtractionTime:Z
6: ldc "sun.tools.jar.resources.jar"
invokestatic java.util.ResourceBundle.getBundle:(Ljava/lang/String;)Ljava/util/ResourceBundle;
putstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
7: goto 10
StackMap locals:
StackMap stack: java.util.MissingResourceException
8: pop
9: new java.lang.Error
dup
ldc "Fatal: Resource for jar is missing"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
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/Main.lambda$0(Ljava/lang/String;Ljava/lang/String;)I (6)
(Ljava/lang/String;Ljava/lang/String;)I
putstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
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/zip/ZipEntry.getName()Ljava/lang/String; (5)
(Ljava/util/zip/ZipEntry;)Ljava/lang/String;
getstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
12: putstatic sun.tools.jar.Main.ENTRY_COMPARATOR:Ljava/util/Comparator;
13: return
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
6 7 8 Class java.util.MissingResourceException
static java.lang.String getMsg(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic sun.tools.jar.Main.rsrc:Ljava/util/ResourceBundle;
aload 0
invokevirtual java.util.ResourceBundle.getString:(Ljava/lang/String;)Ljava/lang/String;
1: areturn
2: StackMap locals:
StackMap stack: java.util.MissingResourceException
pop
3: new java.lang.Error
dup
ldc "Error in message file"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 key Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.util.MissingResourceException
MethodParameters:
Name Flags
key
static java.lang.String formatMsg(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 1: iconst_1
anewarray java.lang.String
astore 3
start local 3 2: aload 3
iconst_0
aload 1
aastore
3: aload 2
aload 3
invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 key Ljava/lang/String;
0 4 1 arg Ljava/lang/String;
1 4 2 msg Ljava/lang/String;
2 4 3 args [Ljava/lang/String;
MethodParameters:
Name Flags
key
arg
static java.lang.String formatMsg2(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 1: iconst_2
anewarray java.lang.String
astore 4
start local 4 2: aload 4
iconst_0
aload 1
aastore
3: aload 4
iconst_1
aload 2
aastore
4: aload 3
aload 4
invokestatic java.text.MessageFormat.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 key Ljava/lang/String;
0 5 1 arg Ljava/lang/String;
0 5 2 arg1 Ljava/lang/String;
1 5 3 msg Ljava/lang/String;
2 5 4 args [Ljava/lang/String;
MethodParameters:
Name Flags
key
arg
arg1
public void <init>(java.io.PrintStream, java.io.PrintStream, java.lang.String);
descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc ""
putfield sun.tools.jar.Main.zname:Ljava/lang/String;
2: aload 0
aconst_null
putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
4: aload 0
new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
putfield sun.tools.jar.Main.entries:Ljava/util/Set;
5: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
6: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
7: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
8: aload 0
iconst_m1
putfield sun.tools.jar.Main.releaseValue:I
9: aload 0
iconst_0
putfield sun.tools.jar.Main.suppressDeprecateMsg:Z
10: aload 0
invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
11: aload 0
iconst_0
anewarray java.nio.file.Path
invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
12: aload 0
sipush 8192
newarray 8
putfield sun.tools.jar.Main.copyBuf:[B
13: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
14: aload 0
new java.io.PrintWriter
dup
aload 1
iconst_1
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
15: aload 0
new java.io.PrintWriter
dup
aload 2
iconst_1
invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;Z)V
putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
16: aload 0
aload 3
putfield sun.tools.jar.Main.program:Ljava/lang/String;
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/tools/jar/Main;
0 18 1 out Ljava/io/PrintStream;
0 18 2 err Ljava/io/PrintStream;
0 18 3 program Ljava/lang/String;
MethodParameters:
Name Flags
out
err
program
public void <init>(java.io.PrintWriter, java.io.PrintWriter, java.lang.String);
descriptor: (Ljava/io/PrintWriter;Ljava/io/PrintWriter;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc ""
putfield sun.tools.jar.Main.zname:Ljava/lang/String;
2: aload 0
aconst_null
putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
4: aload 0
new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
putfield sun.tools.jar.Main.entries:Ljava/util/Set;
5: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
6: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
7: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
8: aload 0
iconst_m1
putfield sun.tools.jar.Main.releaseValue:I
9: aload 0
iconst_0
putfield sun.tools.jar.Main.suppressDeprecateMsg:Z
10: aload 0
invokestatic jdk.internal.module.ModuleResolution.empty:()Ljdk/internal/module/ModuleResolution;
putfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
11: aload 0
iconst_0
anewarray java.nio.file.Path
invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
putfield sun.tools.jar.Main.moduleFinder:Ljava/lang/module/ModuleFinder;
12: aload 0
sipush 8192
newarray 8
putfield sun.tools.jar.Main.copyBuf:[B
13: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
14: aload 0
aload 1
putfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
15: aload 0
aload 2
putfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
16: aload 0
aload 3
putfield sun.tools.jar.Main.program:Ljava/lang/String;
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/tools/jar/Main;
0 18 1 out Ljava/io/PrintWriter;
0 18 2 err Ljava/io/PrintWriter;
0 18 3 program Ljava/lang/String;
MethodParameters:
Name Flags
out
err
program
private static java.io.File createTempFileInSameDirectoryAs(java.io.File);
descriptor: (Ljava/io/File;)Ljava/io/File;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new java.io.File
dup
ldc "."
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 1
3: StackMap locals: java.io.File
StackMap stack:
ldc "jartmp"
aconst_null
aload 1
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 file Ljava/io/File;
1 4 1 dir Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
public synchronized boolean run(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=15, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
putfield sun.tools.jar.Main.ok:Z
1: aload 0
aload 1
invokevirtual sun.tools.jar.Main.parseArgs:([Ljava/lang/String;)Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 4: aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 5
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 9
5: StackMap locals: java.io.File
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 9
6: aload 0
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
putfield sun.tools.jar.Main.zname:Ljava/lang/String;
7: aload 0
getfield sun.tools.jar.Main.zname:Ljava/lang/String;
ldc "./"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
8: aload 0
aload 0
getfield sun.tools.jar.Main.zname:Ljava/lang/String;
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
putfield sun.tools.jar.Main.zname:Ljava/lang/String;
9: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifeq 113
10: aconst_null
astore 3
start local 3 11: aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifne 33
12: aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnull 22
13: aconst_null
astore 4
aconst_null
astore 5
14: new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 6
start local 6 15: new java.util.jar.Manifest
dup
new java.io.BufferedInputStream
dup
aload 6
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
astore 3
16: aload 6
ifnull 23
aload 6
invokevirtual java.io.InputStream.close:()V
goto 23
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
17: astore 4
aload 6
ifnull 18
aload 6
invokevirtual java.io.InputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
18: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
19: astore 5
aload 4
ifnonnull 20
aload 5
astore 4
goto 21
StackMap locals:
StackMap stack:
20: aload 4
aload 5
if_acmpeq 21
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
21: aload 4
athrow
22: StackMap locals:
StackMap stack:
new java.util.jar.Manifest
dup
invokespecial java.util.jar.Manifest.<init>:()V
astore 3
23: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
24: aload 0
aload 3
invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
25: aload 0
aload 3
invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
ifeq 29
26: aload 2
ifnull 28
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 28
27: aload 2
invokevirtual java.io.File.delete:()Z
pop
28: StackMap locals:
StackMap stack:
iconst_0
ireturn
29: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 31
30: aload 0
aload 3
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
31: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.isMultiRelease:Z
ifeq 33
32: aload 0
aload 3
invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
33: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.tools.jar.Main.expand:()V
34: aload 0
getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 45
35: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 4
start local 4 36: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 5
start local 5 37: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
38: 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/Main.lambda$2(Lsun/tools/jar/Main$Entry;)Z (6)
(Lsun/tools/jar/Main$Entry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
39: aload 0
aload 5
aload 4
invokedynamic accept(Lsun/tools/jar/Main;Ljava/util/Set;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
sun/tools/jar/Main.lambda$3(Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V (7)
(Lsun/tools/jar/Main$Entry;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
40: aload 0
aload 0
getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
aload 5
invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
41: aload 0
aload 0
getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
ldc "module-info.class"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
aload 4
invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
ifne 50
42: aload 2
ifnull 44
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 44
43: aload 2
invokevirtual java.io.File.delete:()Z
pop
44: StackMap locals: java.util.Set java.util.Set
StackMap stack:
iconst_0
ireturn
end local 5 end local 4 45: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
ifnonnull 46
aload 0
getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
ifnull 50
46: StackMap locals:
StackMap stack:
aload 0
ldc "error.module.options.without.info"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
47: aload 2
ifnull 49
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 49
48: aload 2
invokevirtual java.io.File.delete:()Z
pop
49: StackMap locals:
StackMap stack:
iconst_0
ireturn
50: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 52
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnonnull 52
51: aload 0
iconst_0
putfield sun.tools.jar.Main.vflag:Z
52: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnonnull 54
53: ldc "tmpjar"
goto 55
54: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
55: StackMap locals:
StackMap stack: java.lang.String
astore 4
start local 4 56: aload 0
aload 4
ldc ".jar"
invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 2
57: aconst_null
astore 5
aconst_null
astore 6
58: new java.io.FileOutputStream
dup
aload 2
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 7
start local 7 59: aload 0
new java.io.BufferedOutputStream
dup
aload 7
sipush 4096
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
aload 3
invokevirtual sun.tools.jar.Main.create:(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
60: aload 7
ifnull 66
aload 7
invokevirtual java.io.OutputStream.close:()V
goto 66
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.lang.Throwable java.lang.Throwable java.io.OutputStream
StackMap stack: java.lang.Throwable
61: astore 5
aload 7
ifnull 62
aload 7
invokevirtual java.io.OutputStream.close:()V
end local 7 StackMap locals:
StackMap stack:
62: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
63: astore 6
aload 5
ifnonnull 64
aload 6
astore 5
goto 65
StackMap locals:
StackMap stack:
64: aload 5
aload 6
if_acmpeq 65
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
65: aload 5
athrow
66: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.nflag:Z
ifeq 111
67: aload 0
getfield sun.tools.jar.Main.suppressDeprecateMsg:Z
ifne 69
68: aload 0
ldc "warn.flag.is.deprecated"
ldc "-n"
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
69: StackMap locals:
StackMap stack:
aload 0
aload 4
ldc ".pack"
invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 5
start local 5 70: invokestatic java.util.jar.Pack200.newPacker:()Ljava/util/jar/Pack200$Packer;
astore 6
start local 6 71: aload 6
invokeinterface java.util.jar.Pack200$Packer.properties:()Ljava/util/SortedMap;
astore 7
start local 7 72: aload 7
ldc "pack.effort"
ldc "1"
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
73: aconst_null
astore 8
aconst_null
astore 9
74: new java.util.jar.JarFile
dup
aload 2
invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
astore 10
start local 10 75: new java.io.FileOutputStream
dup
aload 5
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 11
start local 11 76: aload 6
aload 10
aload 11
invokeinterface java.util.jar.Pack200$Packer.pack:(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V
77: aload 11
ifnull 80
aload 11
invokevirtual java.io.OutputStream.close:()V
goto 80
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.util.jar.JarFile java.io.OutputStream
StackMap stack: java.lang.Throwable
78: astore 8
aload 11
ifnull 79
aload 11
invokevirtual java.io.OutputStream.close:()V
end local 11 StackMap locals:
StackMap stack:
79: aload 8
athrow
StackMap locals:
StackMap stack:
80: aload 10
ifnull 88
aload 10
invokevirtual java.util.jar.JarFile.close:()V
goto 88
StackMap locals:
StackMap stack: java.lang.Throwable
81: astore 9
aload 8
ifnonnull 82
aload 9
astore 8
goto 83
StackMap locals:
StackMap stack:
82: aload 8
aload 9
if_acmpeq 83
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
83: aload 10
ifnull 84
aload 10
invokevirtual java.util.jar.JarFile.close:()V
end local 10 StackMap locals:
StackMap stack:
84: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
85: astore 9
aload 8
ifnonnull 86
aload 9
astore 8
goto 87
StackMap locals:
StackMap stack:
86: aload 8
aload 9
if_acmpeq 87
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
87: aload 8
athrow
88: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 90
89: aload 2
invokevirtual java.io.File.delete:()Z
pop
90: StackMap locals:
StackMap stack:
aload 0
aload 4
ldc ".jar"
invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 2
91: aconst_null
astore 8
aconst_null
astore 9
92: new java.io.FileOutputStream
dup
aload 2
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 10
start local 10 93: new java.util.jar.JarOutputStream
dup
aload 10
invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 11
start local 11 94: invokestatic java.util.jar.Pack200.newUnpacker:()Ljava/util/jar/Pack200$Unpacker;
astore 12
start local 12 95: aload 12
aload 5
aload 11
invokeinterface java.util.jar.Pack200$Unpacker.unpack:(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V
end local 12 96: aload 11
ifnull 99
aload 11
invokevirtual java.util.jar.JarOutputStream.close:()V
goto 99
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File java.util.jar.Pack200$Packer java.util.Map java.lang.Throwable java.lang.Throwable java.io.OutputStream java.util.jar.JarOutputStream
StackMap stack: java.lang.Throwable
97: astore 8
aload 11
ifnull 98
aload 11
invokevirtual java.util.jar.JarOutputStream.close:()V
end local 11 StackMap locals:
StackMap stack:
98: aload 8
athrow
StackMap locals:
StackMap stack:
99: aload 10
ifnull 110
aload 10
invokevirtual java.io.OutputStream.close:()V
goto 110
StackMap locals:
StackMap stack: java.lang.Throwable
100: astore 9
aload 8
ifnonnull 101
aload 9
astore 8
goto 102
StackMap locals:
StackMap stack:
101: aload 8
aload 9
if_acmpeq 102
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
102: aload 10
ifnull 103
aload 10
invokevirtual java.io.OutputStream.close:()V
end local 10 StackMap locals:
StackMap stack:
103: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
104: astore 9
aload 8
ifnonnull 105
aload 9
astore 8
goto 106
StackMap locals:
StackMap stack:
105: aload 8
aload 9
if_acmpeq 106
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
106: aload 8
athrow
end local 7 end local 6 107: StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.util.jar.Manifest java.lang.String java.io.File
StackMap stack: java.lang.Throwable
astore 13
108: aload 5
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
109: aload 13
athrow
110: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
end local 5 111: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
end local 4 end local 3 112: goto 232
StackMap locals:
StackMap stack:
113: aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 154
114: aconst_null
astore 3
start local 3 115: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 119
116: new java.io.File
dup
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
117: aload 3
invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
astore 2
118: goto 121
119: StackMap locals: java.io.File
StackMap stack:
aload 0
iconst_0
putfield sun.tools.jar.Main.vflag:Z
120: aload 0
ldc "tmpjar"
ldc ".jar"
invokevirtual sun.tools.jar.Main.createTemporaryFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 2
121: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.tools.jar.Main.expand:()V
122: aconst_null
astore 4
aconst_null
astore 5
123: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 124
new java.io.FileInputStream
dup
aload 3
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
goto 125
124: StackMap locals: java.lang.Throwable java.lang.Throwable
StackMap stack:
new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
125: StackMap locals:
StackMap stack: java.io.FileInputStream
astore 6
start local 6 126: new java.io.FileOutputStream
dup
aload 2
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 7
start local 7 127: aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifne 129
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnull 129
128: new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
goto 130
StackMap locals: java.io.FileInputStream java.io.FileOutputStream
StackMap stack:
129: aconst_null
130: StackMap locals:
StackMap stack: java.io.FileInputStream
astore 8
start local 8 131: aload 0
aload 6
new java.io.BufferedOutputStream
dup
aload 7
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
132: aload 8
aload 0
getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
aconst_null
133: invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
istore 9
start local 9 134: aload 0
getfield sun.tools.jar.Main.ok:Z
ifeq 136
135: aload 0
iload 9
putfield sun.tools.jar.Main.ok:Z
end local 9 136: StackMap locals: java.io.InputStream
StackMap stack:
aload 8
ifnull 139
aload 8
invokevirtual java.io.InputStream.close:()V
goto 139
StackMap locals:
StackMap stack: java.lang.Throwable
137: astore 4
aload 8
ifnull 138
aload 8
invokevirtual java.io.InputStream.close:()V
end local 8 StackMap locals:
StackMap stack:
138: aload 4
athrow
StackMap locals:
StackMap stack:
139: aload 7
ifnull 144
aload 7
invokevirtual java.io.FileOutputStream.close:()V
goto 144
StackMap locals:
StackMap stack: java.lang.Throwable
140: astore 5
aload 4
ifnonnull 141
aload 5
astore 4
goto 142
StackMap locals:
StackMap stack:
141: aload 4
aload 5
if_acmpeq 142
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
142: aload 7
ifnull 143
aload 7
invokevirtual java.io.FileOutputStream.close:()V
end local 7 StackMap locals:
StackMap stack:
143: aload 4
athrow
StackMap locals:
StackMap stack:
144: aload 6
ifnull 152
aload 6
invokevirtual java.io.FileInputStream.close:()V
goto 152
StackMap locals:
StackMap stack: java.lang.Throwable
145: astore 5
aload 4
ifnonnull 146
aload 5
astore 4
goto 147
StackMap locals:
StackMap stack:
146: aload 4
aload 5
if_acmpeq 147
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
147: aload 6
ifnull 148
aload 6
invokevirtual java.io.FileInputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
148: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
149: astore 5
aload 4
ifnonnull 150
aload 5
astore 4
goto 151
StackMap locals:
StackMap stack:
150: aload 4
aload 5
if_acmpeq 151
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
151: aload 4
athrow
152: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.tools.jar.Main.validateAndClose:(Ljava/io/File;)V
end local 3 153: goto 232
StackMap locals:
StackMap stack:
154: aload 0
getfield sun.tools.jar.Main.tflag:Z
ifeq 168
155: aload 0
aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
156: aload 0
aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
astore 3
start local 3 157: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 160
158: aload 0
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 3
invokevirtual sun.tools.jar.Main.list:(Ljava/lang/String;[Ljava/lang/String;)V
159: goto 232
160: StackMap locals: java.lang.String[]
StackMap stack:
new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
astore 4
start local 4 161: aload 0
new java.io.BufferedInputStream
dup
aload 4
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
aload 3
invokevirtual sun.tools.jar.Main.list:(Ljava/io/InputStream;[Ljava/lang/String;)V
162: goto 166
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
StackMap stack: java.lang.Throwable
163: astore 5
164: aload 4
invokevirtual java.io.InputStream.close:()V
165: aload 5
athrow
166: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.InputStream.close:()V
end local 4 end local 3 167: goto 232
StackMap locals:
StackMap stack:
168: aload 0
getfield sun.tools.jar.Main.xflag:Z
ifeq 186
169: aload 0
aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
invokevirtual sun.tools.jar.Main.replaceFSC:(Ljava/util/Map;)V
170: aload 0
aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
invokevirtual sun.tools.jar.Main.filesMapToFiles:(Ljava/util/Map;)[Ljava/lang/String;
astore 3
start local 3 171: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 174
aload 3
ifnull 174
172: aload 0
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 3
invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
173: goto 232
174: StackMap locals: java.lang.String[]
StackMap stack:
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnonnull 176
175: new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
goto 177
176: StackMap locals:
StackMap stack:
new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
177: StackMap locals:
StackMap stack: java.io.FileInputStream
astore 4
start local 4 178: aload 0
new java.io.BufferedInputStream
dup
aload 4
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
aload 3
invokevirtual sun.tools.jar.Main.extract:(Ljava/io/InputStream;[Ljava/lang/String;)Z
ifne 184
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 184
179: aload 0
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 3
invokevirtual sun.tools.jar.Main.extract:(Ljava/lang/String;[Ljava/lang/String;)V
180: goto 184
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File java.lang.String[] java.io.InputStream
StackMap stack: java.lang.Throwable
181: astore 5
182: aload 4
invokevirtual java.io.InputStream.close:()V
183: aload 5
athrow
184: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.io.InputStream.close:()V
end local 4 end local 3 185: goto 232
StackMap locals:
StackMap stack:
186: aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 190
187: aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String[]
astore 3
start local 3 188: aload 0
aload 0
getfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
aload 3
invokevirtual sun.tools.jar.Main.genIndex:(Ljava/lang/String;[Ljava/lang/String;)V
end local 3 189: goto 232
StackMap locals:
StackMap stack:
190: aload 0
getfield sun.tools.jar.Main.dflag:Z
ifeq 232
191: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 201
192: aconst_null
astore 4
aconst_null
astore 5
193: new java.util.zip.ZipFile
dup
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
astore 6
start local 6 194: aload 0
aload 6
invokevirtual sun.tools.jar.Main.describeModule:(Ljava/util/zip/ZipFile;)Z
istore 3
start local 3 195: aload 6
ifnull 210
aload 6
invokevirtual java.util.zip.ZipFile.close:()V
goto 210
end local 3 StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
StackMap stack: java.lang.Throwable
196: astore 4
aload 6
ifnull 197
aload 6
invokevirtual java.util.zip.ZipFile.close:()V
end local 6 StackMap locals:
StackMap stack:
197: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
198: astore 5
aload 4
ifnonnull 199
aload 5
astore 4
goto 200
StackMap locals:
StackMap stack:
199: aload 4
aload 5
if_acmpeq 200
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
200: aload 4
athrow
201: StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
StackMap stack:
aconst_null
astore 4
aconst_null
astore 5
202: new java.io.FileInputStream
dup
getstatic java.io.FileDescriptor.in:Ljava/io/FileDescriptor;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/FileDescriptor;)V
astore 6
start local 6 203: aload 0
aload 6
invokevirtual sun.tools.jar.Main.describeModuleFromStream:(Ljava/io/FileInputStream;)Z
istore 3
start local 3 204: aload 6
ifnull 210
aload 6
invokevirtual java.io.FileInputStream.close:()V
goto 210
end local 3 StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top java.lang.Throwable java.lang.Throwable java.io.FileInputStream
StackMap stack: java.lang.Throwable
205: astore 4
aload 6
ifnull 206
aload 6
invokevirtual java.io.FileInputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
206: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
207: astore 5
aload 4
ifnonnull 208
aload 5
astore 4
goto 209
StackMap locals:
StackMap stack:
208: aload 4
aload 5
if_acmpeq 209
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
209: aload 4
athrow
start local 3 210: StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File int
StackMap stack:
iload 3
ifne 232
211: aload 0
ldc "error.module.descriptor.not.found"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
end local 3 212: goto 232
StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
StackMap stack: java.io.IOException
213: astore 3
start local 3 214: aload 0
aload 3
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
215: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 3 216: aload 2
ifnull 234
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 234
217: aload 2
invokevirtual java.io.File.delete:()Z
pop
goto 234
218: StackMap locals:
StackMap stack: java.lang.Error
astore 3
start local 3 219: aload 3
invokevirtual java.lang.Error.printStackTrace:()V
220: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 3 221: aload 2
ifnull 234
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 234
222: aload 2
invokevirtual java.io.File.delete:()Z
pop
goto 234
223: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
start local 3 224: aload 3
invokevirtual java.lang.Throwable.printStackTrace:()V
225: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 3 226: aload 2
ifnull 234
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 234
227: aload 2
invokevirtual java.io.File.delete:()Z
pop
goto 234
228: StackMap locals:
StackMap stack: java.lang.Throwable
astore 14
229: aload 2
ifnull 231
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 231
230: aload 2
invokevirtual java.io.File.delete:()Z
pop
231: StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 14
athrow
232: StackMap locals: sun.tools.jar.Main java.lang.String[] java.io.File
StackMap stack:
aload 2
ifnull 234
aload 2
invokevirtual java.io.File.exists:()Z
ifeq 234
233: aload 2
invokevirtual java.io.File.delete:()Z
pop
234: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
invokevirtual java.io.PrintWriter.flush:()V
235: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
invokevirtual java.io.PrintWriter.flush:()V
236: aload 0
getfield sun.tools.jar.Main.ok:Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 237 0 this Lsun/tools/jar/Main;
0 237 1 args [Ljava/lang/String;
4 237 2 tmpFile Ljava/io/File;
11 112 3 manifest Ljava/util/jar/Manifest;
15 18 6 in Ljava/io/InputStream;
36 45 4 jentries Ljava/util/Set<Ljava/lang/String;>;
37 45 5 packages Ljava/util/Set<Ljava/lang/String;>;
56 112 4 tmpbase Ljava/lang/String;
59 62 7 out Ljava/io/OutputStream;
70 111 5 packFile Ljava/io/File;
71 107 6 packer Ljava/util/jar/Pack200$Packer;
72 107 7 p Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
75 84 10 jarFile Ljava/util/jar/JarFile;
76 79 11 pack Ljava/io/OutputStream;
93 103 10 out Ljava/io/OutputStream;
94 98 11 jos Ljava/util/jar/JarOutputStream;
95 96 12 unpacker Ljava/util/jar/Pack200$Unpacker;
115 153 3 inputFile Ljava/io/File;
126 148 6 in Ljava/io/FileInputStream;
127 143 7 out Ljava/io/FileOutputStream;
131 138 8 manifest Ljava/io/InputStream;
134 136 9 updateOk Z
157 167 3 files [Ljava/lang/String;
161 167 4 in Ljava/io/InputStream;
171 185 3 files [Ljava/lang/String;
178 185 4 in Ljava/io/InputStream;
188 189 3 files [Ljava/lang/String;
195 196 3 found Z
204 205 3 found Z
210 212 3 found Z
194 197 6 zf Ljava/util/zip/ZipFile;
203 206 6 fin Ljava/io/FileInputStream;
214 216 3 e Ljava/io/IOException;
219 221 3 ee Ljava/lang/Error;
224 226 3 t Ljava/lang/Throwable;
Exception table:
from to target type
15 16 17 any
14 19 19 any
59 60 61 any
58 63 63 any
76 77 78 any
75 80 81 any
74 85 85 any
94 96 97 any
93 99 100 any
92 104 104 any
70 107 107 any
131 136 137 any
127 139 140 any
126 144 145 any
123 149 149 any
161 163 163 any
178 181 181 any
194 195 196 any
193 198 198 any
203 204 205 any
202 207 207 any
4 26 213 Class java.io.IOException
29 42 213 Class java.io.IOException
45 47 213 Class java.io.IOException
50 212 213 Class java.io.IOException
4 26 218 Class java.lang.Error
29 42 218 Class java.lang.Error
45 47 218 Class java.lang.Error
50 212 218 Class java.lang.Error
4 26 223 Class java.lang.Throwable
29 42 223 Class java.lang.Throwable
45 47 223 Class java.lang.Throwable
50 212 223 Class java.lang.Throwable
4 26 228 any
29 42 228 any
45 47 228 any
50 216 228 any
218 221 228 any
223 226 228 any
MethodParameters:
Name Flags
args
private void validateAndClose(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.ok:Z
ifeq 14
aload 0
getfield sun.tools.jar.Main.isMultiRelease:Z
ifeq 14
1: aconst_null
astore 2
aconst_null
astore 3
2: new java.util.zip.ZipFile
dup
aload 1
invokespecial java.util.zip.ZipFile.<init>:(Ljava/io/File;)V
astore 4
start local 4 3: aload 0
aload 0
aload 4
invokestatic sun.tools.jar.Validator.validate:(Lsun/tools/jar/Main;Ljava/util/zip/ZipFile;)Z
putfield sun.tools.jar.Main.ok:Z
4: aload 0
getfield sun.tools.jar.Main.ok:Z
ifne 6
5: aload 0
ldc "error.validator.jarfile.invalid"
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
6: StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipFile
StackMap stack:
aload 4
ifnull 14
aload 4
invokevirtual java.util.zip.ZipFile.close:()V
goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 2
aload 4
ifnull 8
aload 4
invokevirtual java.util.zip.ZipFile.close:()V
end local 4 StackMap locals:
StackMap stack:
8: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 3
aload 2
ifnonnull 10
aload 3
astore 2
goto 11
StackMap locals:
StackMap stack:
10: aload 2
aload 3
if_acmpeq 11
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
11: aload 2
athrow
StackMap locals: sun.tools.jar.Main java.io.File
StackMap stack: java.io.IOException
12: astore 2
start local 2 13: aload 0
ldc "error.validator.jarfile.exception"
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
aload 2
invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
end local 2 14: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
astore 2
start local 2 15: aload 0
getfield sun.tools.jar.Main.ok:Z
ifeq 24
16: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 19
17: aload 2
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
pop
18: goto 24
19: StackMap locals: java.nio.file.Path
StackMap stack:
aload 2
new java.io.FileOutputStream
dup
getstatic java.io.FileDescriptor.out:Ljava/io/FileDescriptor;
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/io/OutputStream;)J
pop2
20: goto 24
StackMap locals:
StackMap stack: java.lang.Throwable
21: astore 3
22: aload 2
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
23: aload 3
athrow
24: StackMap locals:
StackMap stack:
aload 2
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
25: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/tools/jar/Main;
0 26 1 tmpfile Ljava/io/File;
3 8 4 zf Ljava/util/zip/ZipFile;
13 14 2 e Ljava/io/IOException;
15 26 2 path Ljava/nio/file/Path;
Exception table:
from to target type
3 6 7 any
2 9 9 any
1 12 12 Class java.io.IOException
15 21 21 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
tmpfile
private java.lang.String[] filesMapToFiles(java.util.Map<java.lang.Integer, java.lang.String[]>);
descriptor: (Ljava/util/Map;)[Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map.isEmpty:()Z
ifeq 1
aconst_null
areturn
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
2: invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
3: aload 0
invokedynamic apply(Lsun/tools/jar/Main;)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;
sun/tools/jar/Main.filesToEntryNames(Ljava/util/Map$Entry;)Ljava/util/stream/Stream; (5)
(Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
4: invokedynamic apply()Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
sun/tools/jar/Main.lambda$5(I)[Ljava/lang/String; (6)
(I)[Ljava/lang/String;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast java.lang.String[]
5: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/tools/jar/Main;
0 6 1 filesMap Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)[Ljava/lang/String;
MethodParameters:
Name Flags
filesMap
java.util.stream.Stream<java.lang.String> filesToEntryNames(java.util.Map$Entry<java.lang.Integer, java.lang.String[]>);
descriptor: (Ljava/util/Map$Entry;)Ljava/util/stream/Stream;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 2
start local 2 1: aload 0
getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 2: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
3: aload 0
aload 3
iload 2
invokedynamic apply(Lsun/tools/jar/Main;Ljava/util/Set;I)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;
sun/tools/jar/Main.lambda$6(Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String; (7)
(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
4: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/tools/jar/Main;
0 5 1 fileEntries Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;
1 5 2 version I
2 5 3 cpaths Ljava/util/Set<Ljava/lang/String;>;
Signature: (Ljava/util/Map$Entry<Ljava/lang/Integer;[Ljava/lang/String;>;)Ljava/util/stream/Stream<Ljava/lang/String;>;
MethodParameters:
Name Flags
fileEntries
boolean parseArgs(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.tools.jar.CommandLine.parse:([Ljava/lang/String;)[Ljava/lang/String;
astore 1
1: goto 8
StackMap locals:
StackMap stack: java.io.FileNotFoundException
2: astore 2
start local 2 3: aload 0
ldc "error.cant.open"
aload 2
invokevirtual java.io.FileNotFoundException.getMessage:()Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
4: iconst_0
ireturn
end local 2 5: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 6: aload 0
aload 2
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
7: iconst_0
ireturn
end local 2 8: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 9: aload 1
iconst_0
aaload
astore 3
start local 3 10: aload 3
ldc "--"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 12
11: aload 3
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 24
aload 3
invokevirtual java.lang.String.length:()I
iconst_2
if_icmpne 24
12: StackMap locals: int java.lang.String
StackMap stack:
aload 0
aload 1
invokestatic sun.tools.jar.GNUStyleOptions.parseOptions:(Lsun/tools/jar/Main;[Ljava/lang/String;)I
istore 2
13: goto 21
StackMap locals:
StackMap stack: sun.tools.jar.GNUStyleOptions$BadArgs
14: astore 4
start local 4 15: aload 0
getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
ifnonnull 21
16: aload 4
getfield sun.tools.jar.GNUStyleOptions$BadArgs.showUsage:Z
ifeq 19
17: aload 0
aload 4
invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
18: goto 20
19: StackMap locals: sun.tools.jar.GNUStyleOptions$BadArgs
StackMap stack:
aload 0
aload 4
invokevirtual sun.tools.jar.GNUStyleOptions$BadArgs.getMessage:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
20: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 4 21: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
ifnull 81
22: aload 0
getfield sun.tools.jar.Main.info:Ljava/util/function/Consumer;
aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
23: iconst_1
ireturn
24: StackMap locals:
StackMap stack:
aload 3
ldc "-"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 26
25: aload 3
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
26: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 27: goto 76
28: StackMap locals: int
StackMap stack:
aload 3
iload 4
invokevirtual java.lang.String.charAt:(I)C
lookupswitch { // 13
48: 57
77: 49
80: 69
99: 29
101: 67
102: 53
105: 59
109: 55
110: 65
116: 44
117: 34
118: 51
120: 39
default: 71
}
29: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 30
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 30
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 30
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 32
30: StackMap locals:
StackMap stack:
aload 0
ldc "error.multiple.main.operations"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
31: iconst_0
ireturn
32: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.cflag:Z
33: goto 75
34: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 35
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 35
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 35
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 37
35: StackMap locals:
StackMap stack:
aload 0
ldc "error.multiple.main.operations"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
36: iconst_0
ireturn
37: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.uflag:Z
38: goto 75
39: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 40
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 40
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 40
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 42
40: StackMap locals:
StackMap stack:
aload 0
ldc "error.multiple.main.operations"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
41: iconst_0
ireturn
42: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.xflag:Z
43: goto 75
44: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 45
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 45
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 45
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifeq 47
45: StackMap locals:
StackMap stack:
aload 0
ldc "error.multiple.main.operations"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
46: iconst_0
ireturn
47: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.tflag:Z
48: goto 75
49: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.Mflag:Z
50: goto 75
51: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.vflag:Z
52: goto 75
53: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.fname:Ljava/lang/String;
54: goto 75
55: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.mname:Ljava/lang/String;
56: goto 75
57: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.flag0:Z
58: goto 75
59: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 60
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 60
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 60
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifeq 62
60: StackMap locals:
StackMap stack:
aload 0
ldc "error.multiple.main.operations"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
61: iconst_0
ireturn
62: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.rootjar:Ljava/lang/String;
63: aload 0
iconst_1
putfield sun.tools.jar.Main.iflag:Z
64: goto 75
65: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.nflag:Z
66: goto 75
67: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
aaload
putfield sun.tools.jar.Main.ename:Ljava/lang/String;
68: goto 75
69: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.tools.jar.Main.pflag:Z
70: goto 75
71: StackMap locals:
StackMap stack:
aload 0
ldc "error.illegal.option"
72: aload 3
iload 4
invokevirtual java.lang.String.charAt:(I)C
invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
73: invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
74: iconst_0
ireturn
75: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
76: iload 4
aload 3
invokevirtual java.lang.String.length:()I
if_icmplt 28
end local 4 end local 3 77: goto 81
StackMap locals: sun.tools.jar.Main java.lang.String[] int
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
78: pop
79: aload 0
ldc "main.usage.summary"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
80: iconst_0
ireturn
81: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.cflag:Z
ifne 84
aload 0
getfield sun.tools.jar.Main.tflag:Z
ifne 84
aload 0
getfield sun.tools.jar.Main.xflag:Z
ifne 84
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifne 84
aload 0
getfield sun.tools.jar.Main.iflag:Z
ifne 84
aload 0
getfield sun.tools.jar.Main.dflag:Z
ifne 84
82: aload 0
ldc "error.bad.option"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
83: iconst_0
ireturn
84: StackMap locals:
StackMap stack:
aload 1
arraylength
iload 2
isub
istore 3
start local 3 85: iload 3
ifle 153
86: iconst_0
istore 4
start local 4 87: iconst_0
istore 5
start local 5 88: iload 3
anewarray java.lang.String
astore 6
start local 6 89: aload 0
getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
90: iload 2
istore 7
start local 7 91: goto 140
92: StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int
StackMap stack:
aload 1
iload 7
aaload
ldc "-C"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 113
93: aload 0
getfield sun.tools.jar.Main.dflag:Z
ifeq 96
94: aload 0
ldc "error.bad.dflag"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
95: iconst_0
ireturn
96: StackMap locals:
StackMap stack:
aload 1
iinc 7 1
iload 7
aaload
astore 8
start local 8 97: aload 8
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 99
98: aload 8
goto 100
StackMap locals: java.lang.String
StackMap stack:
99: new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
100: StackMap locals:
StackMap stack: java.lang.String
astore 8
101: aload 8
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 8
102: getstatic java.io.File.separatorChar:C
bipush 92
if_icmpne 103
aload 8
ldc "//"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 103
iconst_1
goto 104
StackMap locals:
StackMap stack:
103: iconst_0
StackMap locals:
StackMap stack: int
104: istore 9
start local 9 105: goto 107
106: StackMap locals: int
StackMap stack:
aload 8
ldc "//"
ldc "/"
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 8
107: StackMap locals:
StackMap stack:
aload 8
ldc "//"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
iconst_m1
if_icmpgt 106
108: iload 9
ifeq 110
109: new java.lang.StringBuilder
dup
ldc "/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
110: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
aload 8
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
111: aload 6
iload 5
iinc 5 1
new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iinc 7 1
iload 7
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aastore
end local 9 end local 8 112: goto 139
StackMap locals:
StackMap stack:
113: aload 1
iload 7
aaload
ldc "--release"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 135
114: iconst_0
istore 8
start local 8 115: aload 1
iinc 7 1
iload 7
aaload
invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 8
116: goto 119
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int
StackMap stack: java.lang.NumberFormatException
117: pop
118: aload 0
ldc "error.release.value.notnumber"
aload 1
iload 7
aaload
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
119: StackMap locals:
StackMap stack:
iload 8
bipush 9
if_icmpge 122
120: aload 0
ldc "error.release.value.toosmall"
iload 8
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
121: iconst_0
ireturn
122: StackMap locals:
StackMap stack:
iload 5
ifle 129
123: iload 5
anewarray java.lang.String
astore 9
start local 9 124: aload 6
iconst_0
aload 9
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
125: aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
126: aload 0
iload 4
ifle 127
iconst_1
goto 128
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
StackMap stack: sun.tools.jar.Main
127: iconst_0
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] int int java.lang.String[]
StackMap stack: sun.tools.jar.Main int
128: putfield sun.tools.jar.Main.isMultiRelease:Z
end local 9 129: StackMap locals:
StackMap stack:
iconst_0
istore 5
130: iload 3
anewarray java.lang.String
astore 6
131: iload 8
istore 4
132: aload 0
iload 4
putfield sun.tools.jar.Main.releaseValue:I
133: aload 0
getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 134: goto 139
135: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.dflag:Z
ifeq 138
136: aload 0
ldc "error.bad.dflag"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
137: iconst_0
ireturn
138: StackMap locals:
StackMap stack:
aload 6
iload 5
iinc 5 1
aload 1
iload 7
aaload
aastore
139: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
140: iload 7
aload 1
arraylength
if_icmplt 92
end local 7 141: goto 145
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[]
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
142: pop
143: aload 0
ldc "error.bad.file.arg"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
144: iconst_0
ireturn
145: StackMap locals:
StackMap stack:
iload 5
ifle 161
146: iload 5
anewarray java.lang.String
astore 7
start local 7 147: aload 6
iconst_0
aload 7
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
148: aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
149: aload 0
iload 4
ifle 150
iconst_1
goto 151
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
StackMap stack: sun.tools.jar.Main
150: iconst_0
StackMap locals: sun.tools.jar.Main java.lang.String[] int int int int java.lang.String[] java.lang.String[]
StackMap stack: sun.tools.jar.Main int
151: putfield sun.tools.jar.Main.isMultiRelease:Z
end local 7 end local 6 end local 5 end local 4 152: goto 161
StackMap locals: sun.tools.jar.Main java.lang.String[] int int
StackMap stack:
153: aload 0
getfield sun.tools.jar.Main.cflag:Z
ifeq 156
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnonnull 156
154: aload 0
ldc "error.bad.cflag"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
155: iconst_0
ireturn
156: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 161
157: aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
ifnonnull 158
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnonnull 158
aload 0
getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
ifnull 159
158: StackMap locals:
StackMap stack:
iconst_1
ireturn
159: StackMap locals:
StackMap stack:
aload 0
ldc "error.bad.uflag"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
160: iconst_0
ireturn
161: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 162 0 this Lsun/tools/jar/Main;
0 162 1 args [Ljava/lang/String;
3 5 2 e Ljava/io/FileNotFoundException;
6 8 2 e Ljava/io/IOException;
9 162 2 count I
10 77 3 flags Ljava/lang/String;
15 21 4 x Lsun/tools/jar/GNUStyleOptions$BadArgs;
27 77 4 i I
85 162 3 n I
87 152 4 version I
88 152 5 k I
89 152 6 nameBuf [Ljava/lang/String;
91 141 7 i I
97 112 8 dir Ljava/lang/String;
105 112 9 hasUNC Z
115 134 8 v I
124 129 9 files [Ljava/lang/String;
147 152 7 files [Ljava/lang/String;
Exception table:
from to target type
0 1 2 Class java.io.FileNotFoundException
0 1 5 Class java.io.IOException
12 13 14 Class sun.tools.jar.GNUStyleOptions$BadArgs
9 20 78 Class java.lang.ArrayIndexOutOfBoundsException
21 23 78 Class java.lang.ArrayIndexOutOfBoundsException
24 31 78 Class java.lang.ArrayIndexOutOfBoundsException
32 36 78 Class java.lang.ArrayIndexOutOfBoundsException
37 41 78 Class java.lang.ArrayIndexOutOfBoundsException
42 46 78 Class java.lang.ArrayIndexOutOfBoundsException
47 61 78 Class java.lang.ArrayIndexOutOfBoundsException
62 74 78 Class java.lang.ArrayIndexOutOfBoundsException
75 77 78 Class java.lang.ArrayIndexOutOfBoundsException
115 116 117 Class java.lang.NumberFormatException
90 95 142 Class java.lang.ArrayIndexOutOfBoundsException
96 121 142 Class java.lang.ArrayIndexOutOfBoundsException
122 137 142 Class java.lang.ArrayIndexOutOfBoundsException
138 141 142 Class java.lang.ArrayIndexOutOfBoundsException
MethodParameters:
Name Flags
args
void addPackageIfNamed(java.util.Set<java.lang.String>, java.lang.String);
descriptor: (Ljava/util/Set;Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 13
1: getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
istore 3
start local 3 2: aload 2
bipush 47
iload 3
invokevirtual java.lang.String.indexOf:(II)I
istore 4
start local 4 3: iload 4
ifgt 11
4: aload 0
ldc "warn.release.unexpected.versioned.entry"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
5: return
6: StackMap locals: int int
StackMap stack:
aload 2
iload 3
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 7: iload 5
bipush 48
if_icmplt 8
iload 5
bipush 57
if_icmple 10
8: StackMap locals: int
StackMap stack:
aload 0
ldc "warn.release.unexpected.versioned.entry"
aload 2
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
9: return
10: StackMap locals:
StackMap stack:
iinc 3 1
end local 5 11: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmplt 6
12: aload 2
iload 4
iconst_1
iadd
aload 2
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
end local 4 end local 3 13: StackMap locals:
StackMap stack:
aload 2
invokestatic sun.tools.jar.Main.toPackageName:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 14: aload 3
invokestatic jdk.internal.module.Checks.isPackageName:(Ljava/lang/String;)Z
ifeq 16
15: aload 1
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
16: StackMap locals: java.lang.String
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/tools/jar/Main;
0 17 1 packages Ljava/util/Set<Ljava/lang/String;>;
0 17 2 name Ljava/lang/String;
2 13 3 i0 I
3 13 4 i I
7 11 5 c C
14 17 3 pn Ljava/lang/String;
Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;)V
MethodParameters:
Name Flags
packages
name
private java.lang.String toEntryName(java.lang.String, java.util.Set<java.lang.String>, boolean);
descriptor: (Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 1
1: iload 3
ifeq 5
2: aload 1
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 3
aload 1
goto 4
StackMap locals:
StackMap stack:
3: new java.lang.StringBuilder
dup
aload 1
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;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
4: astore 1
5: StackMap locals:
StackMap stack:
ldc ""
astore 4
start local 4 6: aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 10
StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String top java.util.Iterator
StackMap stack:
7: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 8: aload 1
aload 5
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 10
aload 5
invokevirtual java.lang.String.length:()I
aload 4
invokevirtual java.lang.String.length:()I
if_icmple 10
9: aload 5
astore 4
end local 5 10: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
11: aload 0
aload 1
aload 4
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
astore 1
12: aload 1
ldc "./"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
13: aload 1
iconst_2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
14: StackMap locals: sun.tools.jar.Main java.lang.String java.util.Set int java.lang.String
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/tools/jar/Main;
0 15 1 name Ljava/lang/String;
0 15 2 cpaths Ljava/util/Set<Ljava/lang/String;>;
0 15 3 isDir Z
6 15 4 matchPath Ljava/lang/String;
8 10 5 path Ljava/lang/String;
Signature: (Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;Z)Ljava/lang/String;
MethodParameters:
Name Flags
name
cpaths
isDir
private static java.lang.String toVersionedName(java.lang.String, int);
descriptor: (Ljava/lang/String;I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifle 2
1: new java.lang.StringBuilder
dup
ldc "META-INF/versions/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
goto 3
StackMap locals:
StackMap stack:
2: aload 0
3: StackMap locals:
StackMap stack: java.lang.String
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 name Ljava/lang/String;
0 4 1 version I
MethodParameters:
Name Flags
name
version
private static java.lang.String toPackageName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, 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
iconst_m1
if_icmpeq 3
2: aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
areturn
3: StackMap locals: int
StackMap stack:
ldc ""
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 path Ljava/lang/String;
1 4 1 index I
MethodParameters:
Name Flags
path
private void expand();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 4
StackMap locals: sun.tools.jar.Main top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 1
start local 1 2: aload 0
getfield sun.tools.jar.Main.filesMap:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String[]
astore 3
start local 3 3: aload 0
aconst_null
aload 3
aload 0
getfield sun.tools.jar.Main.pathsMap:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
iload 1
invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
end local 3 end local 1 4: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/tools/jar/Main;
2 4 1 version I
3 4 3 files [Ljava/lang/String;
Exceptions:
throws java.io.IOException
private void expand(java.io.File, java.lang.String[], java.util.Set<java.lang.String>, );
descriptor: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 3: goto 41
4: StackMap locals: int
StackMap stack:
aload 1
ifnonnull 7
5: new java.io.File
dup
aload 2
iload 5
aaload
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 6: goto 8
end local 6 7: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 1
aload 2
iload 5
aaload
invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 6
start local 6 8: StackMap locals: java.io.File
StackMap stack:
aload 6
invokevirtual java.io.File.isDirectory:()Z
istore 7
start local 7 9: aload 0
aload 6
invokevirtual java.io.File.getPath:()Ljava/lang/String;
aload 3
iload 7
invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
astore 8
start local 8 10: iload 4
ifeq 18
11: aload 8
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 17
12: aload 0
ldc "error.release.unexpected.versioned.entry"
13: aload 8
iload 4
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
14: invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
15: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
16: return
17: StackMap locals: int java.lang.String
StackMap stack:
aload 8
iload 4
invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
astore 8
18: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.io.File.isFile:()Z
ifeq 29
19: new sun.tools.jar.Main$Entry
dup
aload 6
aload 8
iconst_0
invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
astore 9
start local 9 20: aload 8
invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
ifeq 25
21: aload 0
getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
aload 8
aload 6
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 40
23: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 8
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
24: goto 40
StackMap locals: sun.tools.jar.Main$Entry
StackMap stack:
25: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
aload 9
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 40
26: aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 40
27: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 8
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 28: goto 40
StackMap locals:
StackMap stack:
29: iload 7
ifeq 38
30: new sun.tools.jar.Main$Entry
dup
aload 6
aload 8
iconst_1
invokespecial sun.tools.jar.Main$Entry.<init>:(Ljava/io/File;Ljava/lang/String;Z)V
astore 9
start local 9 31: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
aload 9
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 40
32: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 35
33: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
aload 9
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
34: goto 36
35: StackMap locals: sun.tools.jar.Main$Entry
StackMap stack:
aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 8
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
36: StackMap locals:
StackMap stack:
aload 0
aload 6
aload 6
invokevirtual java.io.File.list:()[Ljava/lang/String;
aload 3
iload 4
invokevirtual sun.tools.jar.Main.expand:(Ljava/io/File;[Ljava/lang/String;Ljava/util/Set;I)V
end local 9 37: goto 40
38: StackMap locals:
StackMap stack:
aload 0
ldc "error.nosuch.fileordir"
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
39: aload 0
iconst_0
putfield sun.tools.jar.Main.ok:Z
end local 8 end local 7 end local 6 40: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
41: iload 5
aload 2
arraylength
if_icmplt 4
end local 5 42: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/tools/jar/Main;
0 43 1 dir Ljava/io/File;
0 43 2 files [Ljava/lang/String;
0 43 3 cpaths Ljava/util/Set<Ljava/lang/String;>;
0 43 4 version I
3 42 5 i I
6 7 6 f Ljava/io/File;
8 40 6 f Ljava/io/File;
9 40 7 isDir Z
10 40 8 name Ljava/lang/String;
20 28 9 e Lsun/tools/jar/Main$Entry;
31 37 9 e Lsun/tools/jar/Main$Entry;
Exceptions:
throws java.io.IOException
Signature: (Ljava/io/File;[Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;I)V
MethodParameters:
Name Flags
dir
files
cpaths
version
void create(java.io.OutputStream, java.util.jar.Manifest);
descriptor: (Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V
flags: (0x0000)
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
aconst_null
astore 4
1: new java.util.jar.JarOutputStream
dup
aload 1
invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 5
start local 5 2: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 4
3: aload 5
iconst_0
invokevirtual java.util.zip.ZipOutputStream.setMethod:(I)V
4: StackMap locals: java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
StackMap stack:
aload 2
ifnull 19
5: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 7
6: aload 0
ldc "out.added.manifest"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
7: StackMap locals:
StackMap stack:
new java.util.zip.ZipEntry
dup
ldc "META-INF/"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 6
start local 6 8: aload 6
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
9: aload 6
lconst_0
invokevirtual java.util.zip.ZipEntry.setSize:(J)V
10: aload 6
lconst_0
invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
11: aload 5
aload 6
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
12: new java.util.zip.ZipEntry
dup
ldc "META-INF/MANIFEST.MF"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 6
13: aload 6
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
14: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 16
15: aload 0
aload 6
aload 2
invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
16: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 5
aload 6
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
17: aload 2
aload 5
invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
18: aload 5
invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
end local 6 19: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.tools.jar.Main.moduleInfos:Ljava/util/Map;
aload 5
invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
20: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 23
StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream top java.util.Iterator
StackMap stack:
21: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.tools.jar.Main$Entry
astore 6
start local 6 22: aload 0
aload 5
aload 6
invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
end local 6 23: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
24: aload 5
ifnull 30
aload 5
invokevirtual java.util.zip.ZipOutputStream.close:()V
goto 30
StackMap locals: sun.tools.jar.Main java.io.OutputStream java.util.jar.Manifest java.lang.Throwable java.lang.Throwable java.util.zip.ZipOutputStream
StackMap stack: java.lang.Throwable
25: astore 3
aload 5
ifnull 26
aload 5
invokevirtual java.util.zip.ZipOutputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
26: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 4
aload 3
ifnonnull 28
aload 4
astore 3
goto 29
StackMap locals:
StackMap stack:
28: aload 3
aload 4
if_acmpeq 29
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 3
athrow
30: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/tools/jar/Main;
0 31 1 out Ljava/io/OutputStream;
0 31 2 manifest Ljava/util/jar/Manifest;
2 26 5 zos Ljava/util/zip/ZipOutputStream;
8 19 6 e Ljava/util/zip/ZipEntry;
22 23 6 entry Lsun/tools/jar/Main$Entry;
Exception table:
from to target type
2 24 25 any
1 27 27 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
manifest
private char toUpperCaseASCII(char);
descriptor: (C)C
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
bipush 97
if_icmplt 1
iload 1
bipush 122
if_icmple 2
StackMap locals:
StackMap stack:
1: iload 1
goto 3
StackMap locals:
StackMap stack:
2: iload 1
bipush 65
iadd
bipush 97
isub
i2c
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 c C
MethodParameters:
Name Flags
c
private boolean equalsIgnoreCase(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic sun.tools.jar.Main.$assertionsDisabled:Z
ifne 1
aload 2
getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.String.length:()I
dup
istore 3
start local 3 2: aload 2
invokevirtual java.lang.String.length:()I
if_icmpeq 4
3: iconst_0
ireturn
4: StackMap locals: int
StackMap stack:
iconst_0
istore 4
start local 4 5: goto 11
6: StackMap locals: int
StackMap stack:
aload 1
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 7: aload 2
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 6
start local 6 8: iload 5
iload 6
if_icmpeq 10
aload 0
iload 5
invokevirtual sun.tools.jar.Main.toUpperCaseASCII:(C)C
iload 6
if_icmpeq 10
9: iconst_0
ireturn
end local 6 end local 5 10: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
iload 3
if_icmplt 6
end local 4 12: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/tools/jar/Main;
0 13 1 s Ljava/lang/String;
0 13 2 upper Ljava/lang/String;
2 13 3 len I
5 12 4 i I
7 10 5 c1 C
8 10 6 c2 C
MethodParameters:
Name Flags
s
upper
boolean update(java.io.InputStream, java.io.OutputStream, java.io.InputStream, java.util.Map<java.lang.String, byte[]>, jdk.internal.util.jar.JarIndex);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
flags: (0x0000)
Code:
stack=4, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new java.util.zip.ZipInputStream
dup
aload 1
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 6
start local 6 1: new java.util.jar.JarOutputStream
dup
aload 2
invokespecial java.util.jar.JarOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 7
start local 7 2: aconst_null
astore 8
start local 8 3: iconst_0
istore 9
start local 9 4: iconst_1
istore 10
start local 10 5: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 11
start local 11 6: aload 5
ifnull 58
7: aload 0
aload 5
aload 7
invokevirtual sun.tools.jar.Main.addIndex:(Ljdk/internal/util/jar/JarIndex;Ljava/util/zip/ZipOutputStream;)V
8: goto 58
9: StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
StackMap stack:
aload 8
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 12
start local 12 10: aload 0
aload 12
ldc "META-INF/MANIFEST.MF"
invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
istore 13
start local 13 11: aload 12
invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
istore 14
start local 14 12: aload 5
ifnull 13
aload 0
aload 12
ldc "META-INF/INDEX.LIST"
invokevirtual sun.tools.jar.Main.equalsIgnoreCase:(Ljava/lang/String;Ljava/lang/String;)Z
ifne 58
13: StackMap locals: java.lang.String int int
StackMap stack:
aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifeq 15
iload 13
ifeq 15
14: goto 58
15: StackMap locals:
StackMap stack:
iload 13
ifeq 35
aload 3
ifnonnull 17
16: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnonnull 17
aload 0
getfield sun.tools.jar.Main.isMultiRelease:Z
ifeq 35
17: StackMap locals:
StackMap stack:
iconst_1
istore 9
18: aload 3
ifnull 30
19: aconst_null
astore 15
aconst_null
astore 16
20: new java.io.FileInputStream
dup
aload 0
getfield sun.tools.jar.Main.mname:Ljava/lang/String;
invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
astore 17
start local 17 21: aload 0
new java.util.jar.Manifest
dup
aload 17
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
ifeq 24
22: aload 17
ifnull 23
aload 17
invokevirtual java.io.FileInputStream.close:()V
23: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.FileInputStream
StackMap stack:
iconst_0
ireturn
24: StackMap locals:
StackMap stack:
aload 17
ifnull 30
aload 17
invokevirtual java.io.FileInputStream.close:()V
goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
25: astore 15
aload 17
ifnull 26
aload 17
invokevirtual java.io.FileInputStream.close:()V
end local 17 StackMap locals:
StackMap stack:
26: aload 15
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
27: astore 16
aload 15
ifnonnull 28
aload 16
astore 15
goto 29
StackMap locals:
StackMap stack:
28: aload 15
aload 16
if_acmpeq 29
aload 15
aload 16
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
29: aload 15
athrow
30: StackMap locals:
StackMap stack:
new java.util.jar.Manifest
dup
aload 6
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
astore 15
start local 15 31: aload 3
ifnull 33
32: aload 15
aload 3
invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
33: StackMap locals: java.util.jar.Manifest
StackMap stack:
aload 0
aload 15
aload 7
invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
ifne 58
34: iconst_0
ireturn
end local 15 35: StackMap locals:
StackMap stack:
aload 4
ifnull 38
iload 14
ifeq 38
36: aload 4
aload 12
aload 6
invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
37: goto 58
38: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
istore 15
start local 15 39: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 12
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 51
40: new java.util.zip.ZipEntry
dup
aload 12
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 16
start local 16 41: aload 16
aload 8
invokevirtual java.util.zip.ZipEntry.getMethod:()I
invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
42: aload 16
aload 8
invokevirtual java.util.zip.ZipEntry.getTime:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
43: aload 16
aload 8
invokevirtual java.util.zip.ZipEntry.getComment:()Ljava/lang/String;
invokevirtual java.util.zip.ZipEntry.setComment:(Ljava/lang/String;)V
44: aload 16
aload 8
invokevirtual java.util.zip.ZipEntry.getExtra:()[B
invokevirtual java.util.zip.ZipEntry.setExtra:([B)V
45: aload 8
invokevirtual java.util.zip.ZipEntry.getMethod:()I
ifne 48
46: aload 16
aload 8
invokevirtual java.util.zip.ZipEntry.getSize:()J
invokevirtual java.util.zip.ZipEntry.setSize:(J)V
47: aload 16
aload 8
invokevirtual java.util.zip.ZipEntry.getCrc:()J
invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
48: StackMap locals: int java.util.zip.ZipEntry
StackMap stack:
aload 7
aload 16
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
49: aload 0
aload 6
aload 7
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
end local 16 50: goto 56
51: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 12
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.tools.jar.Main$Entry
astore 16
start local 16 52: aload 0
aload 7
aload 16
invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
53: aload 0
getfield sun.tools.jar.Main.entryMap:Ljava/util/Map;
aload 12
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
54: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
aload 16
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
55: aload 16
getfield sun.tools.jar.Main$Entry.isDir:Z
istore 15
end local 16 56: StackMap locals:
StackMap stack:
iload 15
ifne 58
57: aload 11
aload 12
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 15 end local 14 end local 13 end local 12 58: StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set
StackMap stack:
aload 6
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
dup
astore 8
ifnonnull 9
59: aload 0
getfield sun.tools.jar.Main.entries:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 13
goto 64
StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set top java.util.Iterator
StackMap stack:
60: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.tools.jar.Main$Entry
astore 12
start local 12 61: aload 0
aload 7
aload 12
invokevirtual sun.tools.jar.Main.addFile:(Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
62: aload 12
getfield sun.tools.jar.Main$Entry.isDir:Z
ifne 64
63: aload 11
aload 12
getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 12 64: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 60
65: iload 9
ifne 78
66: aload 3
ifnull 75
67: new java.util.jar.Manifest
dup
aload 3
invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
astore 12
start local 12 68: aload 0
aload 12
invokevirtual sun.tools.jar.Main.isAmbiguousMainClass:(Ljava/util/jar/Manifest;)Z
ifeq 69
iconst_0
goto 70
StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.OutputStream java.io.InputStream java.util.Map jdk.internal.util.jar.JarIndex java.util.zip.ZipInputStream java.util.zip.ZipOutputStream java.util.zip.ZipEntry int int java.util.Set java.util.jar.Manifest
StackMap stack:
69: iconst_1
StackMap locals:
StackMap stack: int
70: istore 10
71: iload 10
ifeq 78
72: aload 0
aload 12
aload 7
invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
ifne 78
73: iconst_0
istore 10
end local 12 74: goto 78
StackMap locals:
StackMap stack:
75: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 78
76: aload 0
new java.util.jar.Manifest
dup
invokespecial java.util.jar.Manifest.<init>:()V
aload 7
invokevirtual sun.tools.jar.Main.updateManifest:(Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
ifne 78
77: iconst_0
istore 10
78: StackMap locals:
StackMap stack:
iload 10
ifeq 89
79: aload 4
ifnull 86
aload 4
invokeinterface java.util.Map.isEmpty:()Z
ifne 86
80: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 12
start local 12 81: aload 11
aload 0
aload 12
invokedynamic accept(Lsun/tools/jar/Main;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
sun/tools/jar/Main.lambda$7(Ljava/util/Set;Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
82: aload 0
aload 4
aload 12
invokevirtual sun.tools.jar.Main.addExtendedModuleAttributes:(Ljava/util/Map;Ljava/util/Set;)V
83: aload 0
aload 4
ldc "module-info.class"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
aload 11
invokevirtual sun.tools.jar.Main.checkModuleInfo:([BLjava/util/Set;)Z
istore 10
84: aload 0
aload 4
aload 7
invokevirtual sun.tools.jar.Main.updateModuleInfo:(Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
end local 12 85: goto 89
StackMap locals:
StackMap stack:
86: aload 0
getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
ifnonnull 87
aload 0
getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
ifnull 89
87: StackMap locals:
StackMap stack:
aload 0
ldc "error.module.options.without.info"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.error:(Ljava/lang/String;)V
88: iconst_0
istore 10
89: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.util.zip.ZipInputStream.close:()V
90: aload 7
invokevirtual java.util.zip.ZipOutputStream.close:()V
91: iload 10
ireturn
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 92 0 this Lsun/tools/jar/Main;
0 92 1 in Ljava/io/InputStream;
0 92 2 out Ljava/io/OutputStream;
0 92 3 newManifest Ljava/io/InputStream;
0 92 4 moduleInfos Ljava/util/Map<Ljava/lang/String;[B>;
0 92 5 jarIndex Ljdk/internal/util/jar/JarIndex;
1 92 6 zis Ljava/util/zip/ZipInputStream;
2 92 7 zos Ljava/util/zip/ZipOutputStream;
3 92 8 e Ljava/util/zip/ZipEntry;
4 92 9 foundManifest Z
5 92 10 updateOk Z
6 92 11 jentries Ljava/util/Set<Ljava/lang/String;>;
10 58 12 name Ljava/lang/String;
11 58 13 isManifestEntry Z
12 58 14 isModuleInfoEntry Z
21 26 17 fis Ljava/io/FileInputStream;
31 35 15 old Ljava/util/jar/Manifest;
39 58 15 isDir Z
41 50 16 e2 Ljava/util/zip/ZipEntry;
52 56 16 ent Lsun/tools/jar/Main$Entry;
61 64 12 entry Lsun/tools/jar/Main$Entry;
68 74 12 m Ljava/util/jar/Manifest;
81 85 12 pkgs Ljava/util/Set<Ljava/lang/String;>;
Exception table:
from to target type
21 22 25 any
20 23 27 any
24 27 27 any
Exceptions:
throws java.io.IOException
Signature: (Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;[B>;Ljdk/internal/util/jar/JarIndex;)Z
MethodParameters:
Name Flags
in
out
newManifest
moduleInfos
jarIndex
private void addIndex(jdk.internal.util.jar.JarIndex, java.util.zip.ZipOutputStream);
descriptor: (Ljdk/internal/util/jar/JarIndex;Ljava/util/zip/ZipOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipEntry
dup
ldc "META-INF/INDEX.LIST"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
2: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 6
3: new sun.tools.jar.Main$CRC32OutputStream
dup
invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
astore 4
start local 4 4: aload 1
aload 4
invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
5: aload 4
aload 3
invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
end local 4 6: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 2
aload 3
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
7: aload 1
aload 2
invokevirtual jdk.internal.util.jar.JarIndex.write:(Ljava/io/OutputStream;)V
8: aload 2
invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/jar/Main;
0 10 1 index Ljdk/internal/util/jar/JarIndex;
0 10 2 zos Ljava/util/zip/ZipOutputStream;
1 10 3 e Ljava/util/zip/ZipEntry;
4 6 4 os Lsun/tools/jar/Main$CRC32OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
index
zos
private void updateModuleInfo(java.util.Map<java.lang.String, byte[]>, java.util.zip.ZipOutputStream);
descriptor: (Ljava/util/Map;Ljava/util/zip/ZipOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.tools.jar.Main.uflag:Z
ifeq 1
ldc "out.update.module-info"
goto 2
StackMap locals:
StackMap stack:
1: ldc "out.added.module-info"
StackMap locals:
StackMap stack: java.lang.String
2: astore 3
start local 3 3: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 16
StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
StackMap stack:
4: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 5: aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 6
start local 6 6: aload 4
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast byte[]
astore 7
start local 7 7: new java.util.zip.ZipEntry
dup
aload 6
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 8
start local 8 8: aload 8
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
9: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 11
10: aload 0
aload 8
aload 7
invokevirtual sun.tools.jar.Main.crc32ModuleInfo:(Ljava/util/zip/ZipEntry;[B)V
11: StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String java.util.Map$Entry java.util.Iterator java.lang.String byte[] java.util.zip.ZipEntry
StackMap stack:
aload 2
aload 8
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
12: aload 2
aload 7
invokevirtual java.util.zip.ZipOutputStream.write:([B)V
13: aload 2
invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
14: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 16
15: aload 0
aload 3
aload 6
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 8 end local 7 end local 6 end local 4 16: StackMap locals: sun.tools.jar.Main java.util.Map java.util.zip.ZipOutputStream java.lang.String top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
17: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/tools/jar/Main;
0 18 1 moduleInfos Ljava/util/Map<Ljava/lang/String;[B>;
0 18 2 zos Ljava/util/zip/ZipOutputStream;
3 18 3 fmt Ljava/lang/String;
5 16 4 mi Ljava/util/Map$Entry<Ljava/lang/String;[B>;
6 16 6 name Ljava/lang/String;
7 16 7 bytes [B
8 16 8 e Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/zip/ZipOutputStream;)V
MethodParameters:
Name Flags
moduleInfos
zos
private boolean updateManifest(java.util.jar.Manifest, java.util.zip.ZipOutputStream);
descriptor: (Ljava/util/jar/Manifest;Ljava/util/zip/ZipOutputStream;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.tools.jar.Main.addVersion:(Ljava/util/jar/Manifest;)V
1: aload 0
aload 1
invokevirtual sun.tools.jar.Main.addCreatedBy:(Ljava/util/jar/Manifest;)V
2: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 4
3: aload 0
aload 1
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
invokevirtual sun.tools.jar.Main.addMainClass:(Ljava/util/jar/Manifest;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.isMultiRelease:Z
ifeq 6
5: aload 0
aload 1
invokevirtual sun.tools.jar.Main.addMultiRelease:(Ljava/util/jar/Manifest;)V
6: StackMap locals:
StackMap stack:
new java.util.zip.ZipEntry
dup
ldc "META-INF/MANIFEST.MF"
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 3
start local 3 7: aload 3
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
8: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 10
9: aload 0
aload 3
aload 1
invokevirtual sun.tools.jar.Main.crc32Manifest:(Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
10: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 2
aload 3
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
11: aload 1
aload 2
invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
12: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 14
13: aload 0
ldc "out.update.manifest"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
14: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/tools/jar/Main;
0 15 1 m Ljava/util/jar/Manifest;
0 15 2 zos Ljava/util/zip/ZipOutputStream;
7 15 3 e Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
m
zos
private static final boolean isWinDriveLetter(char);
descriptor: (C)Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush 97
if_icmplt 1
iload 0
bipush 122
if_icmple 3
StackMap locals:
StackMap stack:
1: iload 0
bipush 65
if_icmplt 2
iload 0
bipush 90
if_icmple 3
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 c C
MethodParameters:
Name Flags
c
private java.lang.String safeName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.pflag:Z
ifne 25
1: aload 1
invokevirtual java.lang.String.length:()I
istore 2
start local 2 2: aload 1
ldc "../"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 3
start local 3 3: iload 3
iconst_m1
if_icmpne 6
4: iconst_0
istore 3
5: goto 7
6: StackMap locals: int int
StackMap stack:
iinc 3 3
7: StackMap locals:
StackMap stack:
getstatic java.io.File.separatorChar:C
bipush 92
if_icmpne 22
8: goto 19
9: StackMap locals:
StackMap stack:
iload 3
istore 4
start local 4 10: iload 3
iconst_1
iadd
iload 2
if_icmpge 16
11: aload 1
iload 3
iconst_1
iadd
invokevirtual java.lang.String.charAt:(I)C
bipush 58
if_icmpne 16
12: aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
invokestatic sun.tools.jar.Main.isWinDriveLetter:(C)Z
ifeq 16
13: iinc 3 2
14: goto 16
15: StackMap locals: int
StackMap stack:
iinc 3 1
16: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmpge 17
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 15
17: StackMap locals:
StackMap stack:
iload 3
iload 4
if_icmpne 19
18: goto 23
end local 4 19: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 9
20: goto 23
21: StackMap locals:
StackMap stack:
iinc 3 1
22: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmpge 23
aload 1
iload 3
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpeq 21
23: StackMap locals:
StackMap stack:
iload 3
ifeq 25
24: aload 1
iload 3
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
end local 3 end local 2 25: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/tools/jar/Main;
0 26 1 name Ljava/lang/String;
2 25 2 len I
3 25 3 i I
10 19 4 off I
MethodParameters:
Name Flags
name
private void addVersion(java.util.jar.Manifest);
descriptor: (Ljava/util/jar/Manifest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 1: aload 2
getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
ifnonnull 3
2: aload 2
getstatic java.util.jar.Attributes$Name.MANIFEST_VERSION:Ljava/util/jar/Attributes$Name;
ldc "1.0"
invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: java.util.jar.Attributes
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 m Ljava/util/jar/Manifest;
1 4 2 global Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
m
private void addCreatedBy(java.util.jar.Manifest);
descriptor: (Ljava/util/jar/Manifest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 1: aload 2
new java.util.jar.Attributes$Name
dup
ldc "Created-By"
invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
ifnonnull 7
2: ldc "java.vendor"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 3
start local 3 3: ldc "java.version"
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 4: aload 2
new java.util.jar.Attributes$Name
dup
ldc "Created-By"
invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
new java.lang.StringBuilder
dup
aload 4
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;
5: aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 end local 3 7: StackMap locals: java.util.jar.Attributes
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/jar/Main;
0 8 1 m Ljava/util/jar/Manifest;
1 8 2 global Ljava/util/jar/Attributes;
3 7 3 javaVendor Ljava/lang/String;
4 7 4 jdkVersion Ljava/lang/String;
MethodParameters:
Name Flags
m
private void addMainClass(java.util.jar.Manifest, java.lang.String);
descriptor: (Ljava/util/jar/Manifest;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 3
start local 3 1: aload 3
getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
aload 2
invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/Main;
0 3 1 m Ljava/util/jar/Manifest;
0 3 2 mainApp Ljava/lang/String;
1 3 3 global Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
m
mainApp
private void addMultiRelease(java.util.jar.Manifest);
descriptor: (Ljava/util/jar/Manifest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 1: aload 2
getstatic java.util.jar.Attributes$Name.MULTI_RELEASE:Ljava/util/jar/Attributes$Name;
ldc "true"
invokevirtual java.util.jar.Attributes.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/Main;
0 3 1 m Ljava/util/jar/Manifest;
1 3 2 global Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
m
private boolean isAmbiguousMainClass(java.util.jar.Manifest);
descriptor: (Ljava/util/jar/Manifest;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 5
1: aload 1
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 2
start local 2 2: aload 2
getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 5
3: aload 0
ldc "error.bad.eflag"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.usageError:(Ljava/lang/String;)V
4: iconst_1
ireturn
end local 2 5: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/tools/jar/Main;
0 6 1 m Ljava/util/jar/Manifest;
2 5 2 global Ljava/util/jar/Attributes;
MethodParameters:
Name Flags
m
void addFile(java.util.zip.ZipOutputStream, sun.tools.jar.Main$Entry);
descriptor: (Ljava/util/zip/ZipOutputStream;Lsun/tools/jar/Main$Entry;)V
flags: (0x0000)
Code:
stack=5, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getfield sun.tools.jar.Main$Entry.file:Ljava/io/File;
astore 3
start local 3 1: aload 2
getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
astore 4
start local 4 2: aload 2
getfield sun.tools.jar.Main$Entry.isDir:Z
istore 5
start local 5 3: aload 4
invokevirtual java.lang.String.isEmpty:()Z
ifne 4
aload 4
ldc "."
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
aload 4
aload 0
getfield sun.tools.jar.Main.zname:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: StackMap locals: java.io.File java.lang.String int
StackMap stack:
return
5: StackMap locals:
StackMap stack:
aload 4
ldc "META-INF/"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
aload 4
ldc "META-INF/MANIFEST.MF"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
6: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.Mflag:Z
ifne 10
7: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 9
8: aload 0
ldc "out.ignore.entry"
aload 4
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
return
10: StackMap locals:
StackMap stack:
aload 4
ldc "module-info.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: new java.lang.Error
dup
new java.lang.StringBuilder
dup
ldc "Unexpected module info: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
iload 5
ifeq 13
lconst_0
goto 14
StackMap locals:
StackMap stack:
13: aload 3
invokevirtual java.io.File.length:()J
StackMap locals:
StackMap stack: long
14: lstore 6
start local 6 15: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 17
16: aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
ldc "out.adding"
aload 4
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
17: StackMap locals: long
StackMap stack:
new java.util.zip.ZipEntry
dup
aload 4
invokespecial java.util.zip.ZipEntry.<init>:(Ljava/lang/String;)V
astore 8
start local 8 18: aload 8
aload 3
invokevirtual java.io.File.lastModified:()J
invokevirtual java.util.zip.ZipEntry.setTime:(J)V
19: lload 6
lconst_0
lcmp
ifne 24
20: aload 8
iconst_0
invokevirtual java.util.zip.ZipEntry.setMethod:(I)V
21: aload 8
lconst_0
invokevirtual java.util.zip.ZipEntry.setSize:(J)V
22: aload 8
lconst_0
invokevirtual java.util.zip.ZipEntry.setCrc:(J)V
23: goto 26
StackMap locals: java.util.zip.ZipEntry
StackMap stack:
24: aload 0
getfield sun.tools.jar.Main.flag0:Z
ifeq 26
25: aload 0
aload 8
aload 3
invokevirtual sun.tools.jar.Main.crc32File:(Ljava/util/zip/ZipEntry;Ljava/io/File;)V
26: StackMap locals:
StackMap stack:
aload 1
aload 8
invokevirtual java.util.zip.ZipOutputStream.putNextEntry:(Ljava/util/zip/ZipEntry;)V
27: iload 5
ifne 29
28: aload 0
aload 3
aload 1
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
29: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.zip.ZipOutputStream.closeEntry:()V
30: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 43
31: aload 8
invokevirtual java.util.zip.ZipEntry.getSize:()J
lstore 6
32: aload 8
invokevirtual java.util.zip.ZipEntry.getCompressedSize:()J
lstore 9
start local 9 33: aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
ldc "out.size"
lload 6
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
34: lload 9
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
35: invokestatic sun.tools.jar.Main.formatMsg2:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
36: aload 8
invokevirtual java.util.zip.ZipEntry.getMethod:()I
bipush 8
if_icmpne 42
37: lconst_0
lstore 11
start local 11 38: lload 6
lconst_0
lcmp
ifeq 40
39: lload 6
lload 9
lsub
ldc 100
lmul
lload 6
ldiv
lstore 11
40: StackMap locals: long long
StackMap stack:
aload 0
ldc "out.deflated"
lload 11
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 11 41: goto 43
42: StackMap locals:
StackMap stack:
aload 0
ldc "out.stored"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 9 43: StackMap locals:
StackMap stack:
return
end local 8 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 44 0 this Lsun/tools/jar/Main;
0 44 1 zos Ljava/util/zip/ZipOutputStream;
0 44 2 entry Lsun/tools/jar/Main$Entry;
1 44 3 file Ljava/io/File;
2 44 4 name Ljava/lang/String;
3 44 5 isDir Z
15 44 6 size J
18 44 8 e Ljava/util/zip/ZipEntry;
33 43 9 csize J
38 41 11 ratio J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
zos
entry
private void copy(java.io.InputStream, java.io.OutputStream);
descriptor: (Ljava/io/InputStream;Ljava/io/OutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: goto 2
start local 3 1: StackMap locals: int
StackMap stack:
aload 2
aload 0
getfield sun.tools.jar.Main.copyBuf:[B
iconst_0
iload 3
invokevirtual java.io.OutputStream.write:([BII)V
end local 3 2: StackMap locals:
StackMap stack:
aload 1
aload 0
getfield sun.tools.jar.Main.copyBuf:[B
invokevirtual java.io.InputStream.read:([B)I
dup
istore 3
start local 3 3: iconst_m1
if_icmpne 1
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/tools/jar/Main;
0 5 1 from Ljava/io/InputStream;
0 5 2 to Ljava/io/OutputStream;
1 2 3 n I
3 5 3 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
to
private void copy(java.io.File, java.io.OutputStream);
descriptor: (Ljava/io/File;Ljava/io/OutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
aconst_null
astore 4
1: new java.io.FileInputStream
dup
aload 1
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 5
start local 5 2: aload 0
aload 5
aload 2
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
3: aload 5
ifnull 9
aload 5
invokevirtual java.io.InputStream.close:()V
goto 9
StackMap locals: sun.tools.jar.Main java.io.File java.io.OutputStream java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
4: astore 3
aload 5
ifnull 5
aload 5
invokevirtual java.io.InputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
5: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 4
aload 3
ifnonnull 7
aload 4
astore 3
goto 8
StackMap locals:
StackMap stack:
7: aload 3
aload 4
if_acmpeq 8
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/jar/Main;
0 10 1 from Ljava/io/File;
0 10 2 to Ljava/io/OutputStream;
2 5 5 in Ljava/io/InputStream;
Exception table:
from to target type
2 3 4 any
1 6 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
to
private void copy(java.io.InputStream, java.io.File);
descriptor: (Ljava/io/InputStream;Ljava/io/File;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
aconst_null
astore 4
1: new java.io.FileOutputStream
dup
aload 2
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 5
start local 5 2: aload 0
aload 1
aload 5
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)V
3: aload 5
ifnull 9
aload 5
invokevirtual java.io.OutputStream.close:()V
goto 9
StackMap locals: sun.tools.jar.Main java.io.InputStream java.io.File java.lang.Throwable java.lang.Throwable java.io.OutputStream
StackMap stack: java.lang.Throwable
4: astore 3
aload 5
ifnull 5
aload 5
invokevirtual java.io.OutputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
5: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 4
aload 3
ifnonnull 7
aload 4
astore 3
goto 8
StackMap locals:
StackMap stack:
7: aload 3
aload 4
if_acmpeq 8
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
8: aload 3
athrow
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/jar/Main;
0 10 1 from Ljava/io/InputStream;
0 10 2 to Ljava/io/File;
2 5 5 out Ljava/io/OutputStream;
Exception table:
from to target type
2 3 4 any
1 6 6 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
from
to
private void crc32ModuleInfo(java.util.zip.ZipEntry, byte[]);
descriptor: (Ljava/util/zip/ZipEntry;[B)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new sun.tools.jar.Main$CRC32OutputStream
dup
invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
astore 3
start local 3 1: new java.io.ByteArrayInputStream
dup
aload 2
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 4
start local 4 2: aload 4
aload 3
invokevirtual java.io.ByteArrayInputStream.transferTo:(Ljava/io/OutputStream;)J
pop2
3: aload 3
aload 1
invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
4: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/tools/jar/Main;
0 5 1 e Ljava/util/zip/ZipEntry;
0 5 2 bytes [B
1 5 3 os Lsun/tools/jar/Main$CRC32OutputStream;
2 5 4 in Ljava/io/ByteArrayInputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
bytes
private void crc32Manifest(java.util.zip.ZipEntry, java.util.jar.Manifest);
descriptor: (Ljava/util/zip/ZipEntry;Ljava/util/jar/Manifest;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.tools.jar.Main$CRC32OutputStream
dup
invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
astore 3
start local 3 1: aload 2
aload 3
invokevirtual java.util.jar.Manifest.write:(Ljava/io/OutputStream;)V
2: aload 3
aload 1
invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/Main;
0 4 1 e Ljava/util/zip/ZipEntry;
0 4 2 m Ljava/util/jar/Manifest;
1 4 3 os Lsun/tools/jar/Main$CRC32OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
m
private void crc32File(java.util.zip.ZipEntry, java.io.File);
descriptor: (Ljava/util/zip/ZipEntry;Ljava/io/File;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new sun.tools.jar.Main$CRC32OutputStream
dup
invokespecial sun.tools.jar.Main$CRC32OutputStream.<init>:()V
astore 3
start local 3 1: aload 0
aload 2
aload 3
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/File;Ljava/io/OutputStream;)V
2: aload 3
getfield sun.tools.jar.Main$CRC32OutputStream.n:J
aload 2
invokevirtual java.io.File.length:()J
lcmp
ifeq 6
3: new sun.tools.jar.JarException
dup
4: ldc "error.incorrect.length"
aload 2
invokevirtual java.io.File.getPath:()Ljava/lang/String;
5: invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial sun.tools.jar.JarException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: sun.tools.jar.Main$CRC32OutputStream
StackMap stack:
aload 3
aload 1
invokevirtual sun.tools.jar.Main$CRC32OutputStream.updateEntry:(Ljava/util/zip/ZipEntry;)V
7: return
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/Main;
0 8 1 e Ljava/util/zip/ZipEntry;
0 8 2 f Ljava/io/File;
1 8 3 os Lsun/tools/jar/Main$CRC32OutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
f
void replaceFSC(java.util.Map<java.lang.Integer, java.lang.String[]>);
descriptor: (Ljava/util/Map;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 1
invokedynamic accept(Ljava/util/Map;)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/Main.lambda$8(Ljava/util/Map;Ljava/lang/Integer;)V (6)
(Ljava/lang/Integer;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Main;
0 2 1 filesMap Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;
Signature: (Ljava/util/Map<Ljava/lang/Integer;[Ljava/lang/String;>;)V
MethodParameters:
Name Flags
filesMap
java.util.Set<java.util.zip.ZipEntry> newDirSet();
descriptor: ()Ljava/util/Set;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: new sun.tools.jar.Main$1
dup
aload 0
invokespecial sun.tools.jar.Main$1.<init>:(Lsun/tools/jar/Main;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jar/Main;
Signature: ()Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
void updateLastModifiedTime(java.util.Set<java.util.zip.ZipEntry>);
descriptor: (Ljava/util/Set;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 8
StackMap locals: sun.tools.jar.Main java.util.Set top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
astore 2
start local 2 2: aload 2
invokevirtual java.util.zip.ZipEntry.getTime:()J
lstore 4
start local 4 3: lload 4
ldc -1
lcmp
ifeq 8
4: aload 0
aload 2
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 5: aload 6
invokevirtual java.lang.String.length:()I
ifeq 8
6: new java.io.File
dup
aload 6
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 7
start local 7 7: aload 7
lload 4
invokevirtual java.io.File.setLastModified:(J)Z
pop
end local 7 end local 6 end local 4 end local 2 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/tools/jar/Main;
0 10 1 zes Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
2 8 2 ze Ljava/util/zip/ZipEntry;
3 8 4 lastModified J
5 8 6 name Ljava/lang/String;
7 8 7 f Ljava/io/File;
Exceptions:
throws java.io.IOException
Signature: (Ljava/util/Set<Ljava/util/zip/ZipEntry;>;)V
MethodParameters:
Name Flags
zes
boolean extract(java.io.InputStream, java.lang.String[]);
descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)Z
flags: (0x0000)
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipInputStream
dup
aload 1
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 1: iconst_0
istore 5
start local 5 2: aload 0
invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
astore 6
start local 6 3: goto 16
start local 4 4: StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set
StackMap stack:
iconst_1
istore 5
5: aload 2
ifnonnull 8
6: aload 6
aload 0
aload 3
aload 4
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: goto 16
8: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 7
start local 7 9: aload 2
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 15
StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream java.util.zip.ZipEntry int java.util.Set java.lang.String top int int java.lang.String[]
StackMap stack:
10: aload 11
iload 9
aaload
astore 8
start local 8 11: aload 7
aload 8
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
12: aload 6
aload 0
aload 3
aload 4
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
13: goto 16
end local 8 14: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
15: iload 9
iload 10
if_icmplt 10
end local 7 end local 4 16: StackMap locals: sun.tools.jar.Main java.io.InputStream java.lang.String[] java.util.zip.ZipInputStream top int java.util.Set
StackMap stack:
aload 3
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
dup
astore 4
start local 4 17: ifnonnull 4
18: aload 0
aload 6
invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
19: iload 5
ireturn
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 20 0 this Lsun/tools/jar/Main;
0 20 1 in Ljava/io/InputStream;
0 20 2 files [Ljava/lang/String;
1 20 3 zis Ljava/util/zip/ZipInputStream;
4 16 4 e Ljava/util/zip/ZipEntry;
17 20 4 e Ljava/util/zip/ZipEntry;
2 20 5 entriesFound Z
3 20 6 dirs Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
9 16 7 name Ljava/lang/String;
11 14 8 file Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
files
void extract(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=12, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipFile
dup
aload 1
invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 0
invokevirtual sun.tools.jar.Main.newDirSet:()Ljava/util/Set;
astore 4
start local 4 2: aload 3
invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
astore 5
start local 5 3: goto 16
4: StackMap locals: java.util.zip.ZipFile java.util.Set java.util.Enumeration
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
astore 6
start local 6 5: aload 2
ifnonnull 8
6: aload 4
aload 0
aload 3
aload 6
invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
aload 6
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
7: goto 16
8: StackMap locals: java.util.zip.ZipEntry
StackMap stack:
aload 6
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 7
start local 7 9: aload 2
dup
astore 11
arraylength
istore 10
iconst_0
istore 9
goto 15
StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration java.util.zip.ZipEntry java.lang.String top int int java.lang.String[]
StackMap stack:
10: aload 11
iload 9
aaload
astore 8
start local 8 11: aload 7
aload 8
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
12: aload 4
aload 0
aload 3
aload 6
invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
aload 6
invokevirtual sun.tools.jar.Main.extractFile:(Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
13: goto 16
end local 8 14: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
15: iload 9
iload 10
if_icmplt 10
end local 7 end local 6 16: StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.zip.ZipFile java.util.Set java.util.Enumeration
StackMap stack:
aload 5
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 4
17: aload 3
invokevirtual java.util.zip.ZipFile.close:()V
18: aload 0
aload 4
invokevirtual sun.tools.jar.Main.updateLastModifiedTime:(Ljava/util/Set;)V
19: return
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 20 0 this Lsun/tools/jar/Main;
0 20 1 fname Ljava/lang/String;
0 20 2 files [Ljava/lang/String;
1 20 3 zf Ljava/util/zip/ZipFile;
2 20 4 dirs Ljava/util/Set<Ljava/util/zip/ZipEntry;>;
3 20 5 zes Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
5 16 6 e Ljava/util/zip/ZipEntry;
9 16 7 name Ljava/lang/String;
11 14 8 file Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fname
files
java.util.zip.ZipEntry extractFile(java.io.InputStream, java.util.zip.ZipEntry);
descriptor: (Ljava/io/InputStream;Ljava/util/zip/ZipEntry;)Ljava/util/zip/ZipEntry;
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
aload 2
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.safeName:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 2: aload 4
invokevirtual java.lang.String.length:()I
ifne 4
3: aload 3
areturn
4: StackMap locals: java.util.zip.ZipEntry java.lang.String
StackMap stack:
new java.io.File
dup
aload 4
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 5
start local 5 5: aload 2
invokevirtual java.util.zip.ZipEntry.isDirectory:()Z
ifeq 19
6: aload 5
invokevirtual java.io.File.exists:()Z
ifeq 11
7: aload 5
invokevirtual java.io.File.isDirectory:()Z
ifne 16
8: new java.io.IOException
dup
ldc "error.create.dir"
9: aload 5
invokevirtual java.io.File.getPath:()Ljava/lang/String;
10: invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: java.io.File
StackMap stack:
aload 5
invokevirtual java.io.File.mkdirs:()Z
ifne 15
12: new java.io.IOException
dup
ldc "error.create.dir"
13: aload 5
invokevirtual java.io.File.getPath:()Ljava/lang/String;
14: invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals:
StackMap stack:
aload 2
astore 3
16: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 41
17: aload 0
ldc "out.create"
aload 4
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
18: goto 41
19: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.io.File.getParent:()Ljava/lang/String;
ifnull 26
20: new java.io.File
dup
aload 5
invokevirtual java.io.File.getParent:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 6
start local 6 21: aload 6
invokevirtual java.io.File.exists:()Z
ifne 22
aload 6
invokevirtual java.io.File.mkdirs:()Z
ifeq 23
StackMap locals: java.io.File
StackMap stack:
22: aload 6
invokevirtual java.io.File.isDirectory:()Z
ifne 26
23: StackMap locals:
StackMap stack:
new java.io.IOException
dup
24: ldc "error.create.dir"
aload 6
invokevirtual java.io.File.getPath:()Ljava/lang/String;
25: invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 6 26: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 5
invokevirtual sun.tools.jar.Main.copy:(Ljava/io/InputStream;Ljava/io/File;)V
27: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 6
29: aload 1
instanceof java.util.zip.ZipInputStream
ifeq 31
30: aload 1
checkcast java.util.zip.ZipInputStream
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
goto 32
31: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
invokevirtual java.io.InputStream.close:()V
32: StackMap locals:
StackMap stack:
aload 6
athrow
33: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.zip.ZipInputStream
ifeq 35
34: aload 1
checkcast java.util.zip.ZipInputStream
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
goto 36
35: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.io.InputStream.close:()V
36: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 41
37: aload 2
invokevirtual java.util.zip.ZipEntry.getMethod:()I
bipush 8
if_icmpne 40
38: aload 0
ldc "out.inflated"
aload 4
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
39: goto 41
40: StackMap locals:
StackMap stack:
aload 0
ldc "out.extracted"
aload 4
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
41: StackMap locals:
StackMap stack:
getstatic sun.tools.jar.Main.useExtractionTime:Z
ifne 45
42: aload 2
invokevirtual java.util.zip.ZipEntry.getTime:()J
lstore 6
start local 6 43: lload 6
ldc -1
lcmp
ifeq 45
44: aload 5
lload 6
invokevirtual java.io.File.setLastModified:(J)Z
pop
end local 6 45: StackMap locals:
StackMap stack:
aload 3
areturn
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 46 0 this Lsun/tools/jar/Main;
0 46 1 is Ljava/io/InputStream;
0 46 2 e Ljava/util/zip/ZipEntry;
1 46 3 rc Ljava/util/zip/ZipEntry;
2 46 4 name Ljava/lang/String;
5 46 5 f Ljava/io/File;
21 26 6 d Ljava/io/File;
43 45 6 lastModified J
Exception table:
from to target type
26 28 28 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
is
e
void list(java.io.InputStream, java.lang.String[]);
descriptor: (Ljava/io/InputStream;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipInputStream
dup
aload 1
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 3
start local 3 1: goto 4
start local 4 2: StackMap locals: java.util.zip.ZipInputStream java.util.zip.ZipEntry
StackMap stack:
aload 3
invokevirtual java.util.zip.ZipInputStream.closeEntry:()V
3: aload 0
aload 4
aload 2
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
end local 4 4: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
dup
astore 4
start local 4 5: ifnonnull 2
6: return
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/Main;
0 7 1 in Ljava/io/InputStream;
0 7 2 files [Ljava/lang/String;
1 7 3 zis Ljava/util/zip/ZipInputStream;
2 4 4 e Ljava/util/zip/ZipEntry;
5 7 4 e Ljava/util/zip/ZipEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
files
void list(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.util.zip.ZipFile
dup
aload 1
invokespecial java.util.zip.ZipFile.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokevirtual java.util.zip.ZipFile.entries:()Ljava/util/Enumeration;
astore 4
start local 4 2: goto 4
3: StackMap locals: java.util.zip.ZipFile java.util.Enumeration
StackMap stack:
aload 0
aload 4
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.util.zip.ZipEntry
aload 2
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 3
5: aload 3
invokevirtual java.util.zip.ZipFile.close:()V
6: return
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/Main;
0 7 1 fname Ljava/lang/String;
0 7 2 files [Ljava/lang/String;
1 7 3 zf Ljava/util/zip/ZipFile;
2 7 4 zes Ljava/util/Enumeration<+Ljava/util/zip/ZipEntry;>;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fname
files
void dumpIndex(java.lang.String, jdk.internal.util.jar.JarIndex);
descriptor: (Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
flags: (0x0000)
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new java.io.File
dup
aload 1
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 3
start local 3 1: aload 3
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
astore 4
start local 4 2: aload 3
invokestatic sun.tools.jar.Main.createTempFileInSameDirectoryAs:(Ljava/io/File;)Ljava/io/File;
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
astore 5
start local 5 3: aload 0
aload 4
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
4: aload 5
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newOutputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/OutputStream;
5: aconst_null
aconst_null
aload 2
6: invokevirtual sun.tools.jar.Main.update:(Ljava/io/InputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;Ljdk/internal/util/jar/JarIndex;)Z
7: ifeq 15
8: aload 5
aload 4
iconst_1
anewarray java.nio.file.CopyOption
dup
iconst_0
getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
aastore
invokestatic java.nio.file.Files.move:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
pop
9: goto 15
StackMap locals: sun.tools.jar.Main java.lang.String jdk.internal.util.jar.JarIndex java.io.File java.nio.file.Path java.nio.file.Path
StackMap stack: java.io.IOException
10: astore 6
start local 6 11: new java.io.IOException
dup
ldc "error.write.file"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
aload 6
invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 6 12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
13: aload 5
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
14: aload 7
athrow
15: StackMap locals:
StackMap stack:
aload 5
invokestatic java.nio.file.Files.deleteIfExists:(Ljava/nio/file/Path;)Z
pop
16: return
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 17 0 this Lsun/tools/jar/Main;
0 17 1 rootjar Ljava/lang/String;
0 17 2 index Ljdk/internal/util/jar/JarIndex;
1 17 3 jarFile Ljava/io/File;
2 17 4 jarPath Ljava/nio/file/Path;
3 17 5 tmpPath Ljava/nio/file/Path;
11 12 6 e Ljava/io/IOException;
Exception table:
from to target type
8 9 10 Class java.io.IOException
3 12 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
rootjar
index
java.util.List<java.lang.String> getJarPath(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/List;
flags: (0x0000)
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 1: aload 2
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 0
getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
aload 1
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
3: aload 1
iconst_0
iconst_0
aload 1
bipush 47
invokevirtual java.lang.String.lastIndexOf:(I)I
iconst_1
iadd
invokestatic java.lang.Math.max:(II)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 4: new java.util.jar.JarFile
dup
aload 1
bipush 47
getstatic java.io.File.separatorChar:C
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
astore 4
start local 4 5: aload 4
ifnull 20
6: aload 4
invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
astore 5
start local 5 7: aload 5
ifnull 20
8: aload 5
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 6
start local 6 9: aload 6
ifnull 20
10: aload 6
getstatic java.util.jar.Attributes$Name.CLASS_PATH:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 7
start local 7 11: aload 7
ifnull 20
12: new java.util.StringTokenizer
dup
aload 7
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
astore 8
start local 8 13: goto 19
14: StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.util.StringTokenizer
StackMap stack:
aload 8
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 9
start local 9 15: aload 9
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 19
16: aload 3
aload 9
invokevirtual java.lang.String.concat:(Ljava/lang/String;)Ljava/lang/String;
astore 9
17: aload 0
getfield sun.tools.jar.Main.jarPaths:Ljava/util/HashSet;
aload 9
invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
ifne 19
18: aload 2
aload 0
aload 9
invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 9 19: StackMap locals:
StackMap stack:
aload 8
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 14
end local 8 end local 7 end local 6 end local 5 20: StackMap locals: sun.tools.jar.Main java.lang.String java.util.List java.lang.String java.util.jar.JarFile
StackMap stack:
aload 4
invokevirtual java.util.jar.JarFile.close:()V
21: aload 2
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lsun/tools/jar/Main;
0 22 1 jar Ljava/lang/String;
1 22 2 files Ljava/util/List<Ljava/lang/String;>;
4 22 3 path Ljava/lang/String;
5 22 4 rf Ljava/util/jar/JarFile;
7 20 5 man Ljava/util/jar/Manifest;
9 20 6 attr Ljava/util/jar/Attributes;
11 20 7 value Ljava/lang/String;
13 20 8 st Ljava/util/StringTokenizer;
15 19 9 ajar Ljava/lang/String;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
MethodParameters:
Name Flags
jar
void genIndex(java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
astore 3
start local 3 1: aload 3
invokeinterface java.util.List.size:()I
istore 4
start local 4 2: iload 4
iconst_1
if_icmpne 9
aload 2
ifnull 9
3: iconst_0
istore 6
start local 6 4: goto 7
5: StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int top int
StackMap stack:
aload 3
aload 0
aload 2
iload 6
aaload
invokevirtual sun.tools.jar.Main.getJarPath:(Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
6: iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
aload 2
arraylength
if_icmplt 5
end local 6 8: aload 3
invokeinterface java.util.List.size:()I
istore 4
9: StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String[] java.util.List int
StackMap stack:
aload 3
iload 4
anewarray java.lang.String
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
astore 5
start local 5 10: new jdk.internal.util.jar.JarIndex
dup
aload 5
invokespecial jdk.internal.util.jar.JarIndex.<init>:([Ljava/lang/String;)V
astore 6
start local 6 11: aload 0
aload 1
aload 6
invokevirtual sun.tools.jar.Main.dumpIndex:(Ljava/lang/String;Ljdk/internal/util/jar/JarIndex;)V
12: return
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 13 0 this Lsun/tools/jar/Main;
0 13 1 rootjar Ljava/lang/String;
0 13 2 files [Ljava/lang/String;
1 13 3 jars Ljava/util/List<Ljava/lang/String;>;
2 13 4 njars I
10 13 5 jarfiles [Ljava/lang/String;
4 8 6 i I
11 13 6 index Ljdk/internal/util/jar/JarIndex;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
rootjar
files
void printEntry(java.util.zip.ZipEntry, java.lang.String[]);
descriptor: (Ljava/util/zip/ZipEntry;[Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 3
1: aload 0
aload 1
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
2: goto 11
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 3
start local 3 4: aload 2
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 10
StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[] java.lang.String top int int java.lang.String[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 3
aload 4
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
7: aload 0
aload 1
invokevirtual sun.tools.jar.Main.printEntry:(Ljava/util/zip/ZipEntry;)V
8: return
end local 4 9: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
iload 6
if_icmplt 5
end local 3 11: StackMap locals: sun.tools.jar.Main java.util.zip.ZipEntry java.lang.String[]
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/tools/jar/Main;
0 12 1 e Ljava/util/zip/ZipEntry;
0 12 2 files [Ljava/lang/String;
4 11 3 name Ljava/lang/String;
6 9 4 file Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
files
void printEntry(java.util.zip.ZipEntry);
descriptor: (Ljava/util/zip/ZipEntry;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.vflag:Z
ifeq 12
1: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 2: aload 1
invokevirtual java.util.zip.ZipEntry.getSize:()J
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
astore 3
start local 3 3: bipush 6
aload 3
invokevirtual java.lang.String.length:()I
isub
istore 4
start local 4 4: goto 7
5: StackMap locals: java.lang.StringBuilder java.lang.String int
StackMap stack:
aload 2
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: iinc 4 -1
StackMap locals:
StackMap stack:
7: iload 4
ifgt 5
end local 4 8: aload 2
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
new java.util.Date
dup
aload 1
invokevirtual java.util.zip.ZipEntry.getTime:()J
invokespecial java.util.Date.<init>:(J)V
invokevirtual java.util.Date.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 2
bipush 32
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 3 end local 2 11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
13: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/tools/jar/Main;
0 14 1 e Ljava/util/zip/ZipEntry;
2 11 2 sb Ljava/lang/StringBuilder;
3 11 3 s Ljava/lang/String;
4 8 4 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
void usageError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
aload 1
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
1: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
ldc "main.usage.summary.try"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/Main;
0 3 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
void fatalError(java.lang.Exception);
descriptor: (Ljava/lang/Exception;)V
flags: (0x0000)
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Exception.printStackTrace:()V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/tools/jar/Main;
0 2 1 e Ljava/lang/Exception;
MethodParameters:
Name Flags
e
void fatalError(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new java.lang.StringBuilder
dup
aload 0
getfield sun.tools.jar.Main.program: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.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/Main;
0 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
protected void output(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.out:Ljava/io/PrintWriter;
aload 1
invokevirtual java.io.PrintWriter.println:(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/Main;
0 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
void error(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
aload 1
invokevirtual java.io.PrintWriter.println:(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/Main;
0 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
void warn(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.tools.jar.Main.err:Ljava/io/PrintWriter;
aload 1
invokevirtual java.io.PrintWriter.println:(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/Main;
0 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: new sun.tools.jar.Main
dup
getstatic java.lang.System.out:Ljava/io/PrintStream;
getstatic java.lang.System.err:Ljava/io/PrintStream;
ldc "jar"
invokespecial sun.tools.jar.Main.<init>:(Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/lang/String;)V
astore 1
start local 1 1: aload 1
aload 0
invokevirtual sun.tools.jar.Main.run:([Ljava/lang/String;)Z
ifeq 2
iconst_0
goto 3
StackMap locals: sun.tools.jar.Main
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: invokestatic java.lang.System.exit:(I)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 args [Ljava/lang/String;
1 5 1 jartool Lsun/tools/jar/Main;
MethodParameters:
Name Flags
args
private java.io.File createTemporaryFile(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
aload 2
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
astore 3
2: goto 4
StackMap locals: sun.tools.jar.Main java.lang.String java.lang.String java.io.File
StackMap stack: java.lang.Exception
3: pop
4: StackMap locals:
StackMap stack:
aload 3
ifnonnull 13
5: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
ifnull 12
6: new java.io.File
dup
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
invokevirtual java.io.File.getParentFile:()Ljava/io/File;
astore 4
start local 4 7: aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
new java.lang.StringBuilder
dup
ldc ".tmp"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 4
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
astore 3
end local 4 8: goto 13
StackMap locals:
StackMap stack: java.io.IOException
9: astore 4
start local 4 10: aload 0
aload 4
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
end local 4 11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
new java.io.IOException
dup
ldc "error.create.tempfile"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/Exception;)V
13: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/tools/jar/Main;
0 14 1 tmpbase Ljava/lang/String;
0 14 2 suffix Ljava/lang/String;
1 14 3 tmpfile Ljava/io/File;
7 8 4 tmpfolder Ljava/io/File;
10 11 4 ioe Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
1 2 3 Class java.lang.SecurityException
6 8 9 Class java.io.IOException
MethodParameters:
Name Flags
tmpbase
suffix
private boolean describeModule(java.util.zip.ZipFile);
descriptor: (Ljava/util/zip/ZipFile;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.zip.ZipFile.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/Main.lambda$9(Ljava/util/zip/ZipEntry;)Z (6)
(Ljava/util/zip/ZipEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
2: getstatic sun.tools.jar.Main.ENTRY_COMPARATOR:Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
3: aload 1
invokedynamic apply(Ljava/util/zip/ZipFile;)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;
sun/tools/jar/Main.lambda$10(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
(Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
4: invokedynamic apply()Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
sun/tools/jar/Main.lambda$11(I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry; (6)
(I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast sun.tools.jar.Main$ZipFileModuleInfoEntry[]
5: astore 2
start local 2 6: aload 2
arraylength
ifne 24
7: aload 1
invokevirtual java.util.zip.ZipFile.getName:()Ljava/lang/String;
astore 3
start local 3 8: iconst_1
anewarray java.nio.file.Path
dup
iconst_0
aload 3
iconst_0
anewarray java.lang.String
invokestatic java.nio.file.Paths.get:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
aastore
invokestatic java.lang.module.ModuleFinder.of:([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
astore 4
start local 4 9: aload 4
invokeinterface java.lang.module.ModuleFinder.findAll:()Ljava/util/Set;
astore 5
start local 5 10: aload 5
invokeinterface java.util.Set.isEmpty:()Z
ifeq 13
11: aload 0
ldc "error.unable.derive.automodule"
aload 3
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
12: iconst_1
ireturn
13: StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder java.util.Set
StackMap stack:
aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.module.ModuleReference
invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
astore 6
start local 6 14: aload 0
new java.lang.StringBuilder
dup
ldc "out.automodule"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
15: aload 0
aload 6
aconst_null
aconst_null
ldc ""
invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
end local 6 end local 5 16: goto 25
StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[] java.lang.String java.lang.module.ModuleFinder
StackMap stack: java.lang.module.FindException
17: astore 5
start local 5 18: ldc "error.unable.derive.automodule"
aload 3
invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 6
start local 6 19: aload 5
invokevirtual java.lang.module.FindException.getCause:()Ljava/lang/Throwable;
astore 7
start local 7 20: aload 7
ifnull 22
21: new java.lang.StringBuilder
dup
aload 6
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 6
22: StackMap locals: java.lang.module.FindException java.lang.String java.lang.Throwable
StackMap stack:
aload 0
aload 6
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
end local 7 end local 6 end local 5 end local 4 end local 3 23: goto 25
24: StackMap locals: sun.tools.jar.Main java.util.zip.ZipFile sun.tools.jar.Main$ZipFileModuleInfoEntry[]
StackMap stack:
aload 0
aload 2
invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
ireturn
25: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/tools/jar/Main;
0 26 1 zipFile Ljava/util/zip/ZipFile;
6 26 2 infos [Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
8 23 3 fn Ljava/lang/String;
9 23 4 mf Ljava/lang/module/ModuleFinder;
10 16 5 mref Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
14 16 6 md Ljava/lang/module/ModuleDescriptor;
18 23 5 e Ljava/lang/module/FindException;
19 23 6 msg Ljava/lang/String;
20 23 7 t Ljava/lang/Throwable;
Exception table:
from to target type
9 12 17 Class java.lang.module.FindException
13 16 17 Class java.lang.module.FindException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
zipFile
private boolean describeModuleFromStream(java.io.FileInputStream);
descriptor: (Ljava/io/FileInputStream;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=2
start local 0 start local 1 0: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 2
start local 2 1: aconst_null
astore 3
aconst_null
astore 4
2: new java.io.BufferedInputStream
dup
aload 1
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 5
start local 5 3: new java.util.zip.ZipInputStream
dup
aload 5
invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
astore 6
start local 6 4: goto 8
start local 7 5: StackMap locals: sun.tools.jar.Main java.io.FileInputStream java.util.List java.lang.Throwable java.lang.Throwable java.io.BufferedInputStream java.util.zip.ZipInputStream java.util.zip.ZipEntry
StackMap stack:
aload 7
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
astore 8
start local 8 6: aload 8
invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
ifeq 8
7: aload 2
new sun.tools.jar.Main$StreamedModuleInfoEntry
dup
aload 8
aload 6
invokevirtual java.util.zip.ZipInputStream.readAllBytes:()[B
invokespecial sun.tools.jar.Main$StreamedModuleInfoEntry.<init>:(Ljava/lang/String;[B)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 8: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
dup
astore 7
start local 7 9: ifnonnull 5
end local 7 10: aload 6
ifnull 13
aload 6
invokevirtual java.util.zip.ZipInputStream.close:()V
goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 3
aload 6
ifnull 12
aload 6
invokevirtual java.util.zip.ZipInputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
12: aload 3
athrow
StackMap locals:
StackMap stack:
13: aload 5
ifnull 21
aload 5
invokevirtual java.io.BufferedInputStream.close:()V
goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 4
aload 3
ifnonnull 15
aload 4
astore 3
goto 16
StackMap locals:
StackMap stack:
15: aload 3
aload 4
if_acmpeq 16
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 5
ifnull 17
aload 5
invokevirtual java.io.BufferedInputStream.close:()V
end local 5 StackMap locals:
StackMap stack:
17: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 4
aload 3
ifnonnull 19
aload 4
astore 3
goto 20
StackMap locals:
StackMap stack:
19: aload 3
aload 4
if_acmpeq 20
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 3
athrow
21: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.List.size:()I
ifne 23
22: iconst_0
ireturn
23: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
24: 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;
sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
(Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
getstatic sun.tools.jar.Main.ENTRYNAME_COMPARATOR:Ljava/util/Comparator;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;Ljava/util/Comparator;)Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
25: invokedynamic apply()Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
sun/tools/jar/Main.lambda$13(I)[Lsun/tools/jar/Main$ModuleInfoEntry; (6)
(I)[Lsun/tools/jar/Main$ModuleInfoEntry;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast sun.tools.jar.Main$ModuleInfoEntry[]
26: astore 3
start local 3 27: aload 0
aload 3
invokevirtual sun.tools.jar.Main.describeModuleFromEntries:([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lsun/tools/jar/Main;
0 28 1 fis Ljava/io/FileInputStream;
1 28 2 infos Ljava/util/List<Lsun/tools/jar/Main$ModuleInfoEntry;>;
3 17 5 bis Ljava/io/BufferedInputStream;
4 12 6 zis Ljava/util/zip/ZipInputStream;
5 8 7 e Ljava/util/zip/ZipEntry;
9 10 7 e Ljava/util/zip/ZipEntry;
6 8 8 ename Ljava/lang/String;
27 28 3 sorted [Lsun/tools/jar/Main$ModuleInfoEntry;
Exception table:
from to target type
4 10 11 any
3 13 14 any
2 18 18 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fis
private boolean lessThanEqualReleaseValue(sun.tools.jar.Main$ModuleInfoEntry);
descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic sun.tools.jar.Main.intVersionFromEntry:(Lsun/tools/jar/Main$ModuleInfoEntry;)I
aload 0
getfield sun.tools.jar.Main.releaseValue:I
if_icmpgt 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/Main;
0 3 1 entry Lsun/tools/jar/Main$ModuleInfoEntry;
MethodParameters:
Name Flags
entry
private static java.lang.String versionFromEntryName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 1
start local 1 1: aload 1
iconst_0
aload 1
ldc "/"
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 name Ljava/lang/String;
1 2 1 s Ljava/lang/String;
MethodParameters:
Name Flags
name
private static int intVersionFromEntry(sun.tools.jar.Main$ModuleInfoEntry);
descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 1
getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 2
start local 2 4: aload 2
iconst_0
aload 2
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
5: aload 2
invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 entry Lsun/tools/jar/Main$ModuleInfoEntry;
1 6 1 name Ljava/lang/String;
4 6 2 s Ljava/lang/String;
MethodParameters:
Name Flags
entry
private boolean describeModuleFromEntries(sun.tools.jar.Main$ModuleInfoEntry[]);
descriptor: ([Lsun/tools/jar/Main$ModuleInfoEntry;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: getstatic sun.tools.jar.Main.$assertionsDisabled:Z
ifne 1
aload 1
arraylength
ifgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
2: 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/Main.lambda$14(Lsun/tools/jar/Main$ModuleInfoEntry;)Z (6)
(Lsun/tools/jar/Main$ModuleInfoEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
3: 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;
sun/tools/jar/Main$ModuleInfoEntry.name()Ljava/lang/String; (9 itf)
(Lsun/tools/jar/Main$ModuleInfoEntry;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
4: 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;
sun/tools/jar/Main.versionFromEntryName(Ljava/lang/String;)Ljava/lang/String; (6)
(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
5: ldc " "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
6: astore 2
start local 2 7: aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifne 9
8: aload 0
new java.lang.StringBuilder
dup
ldc "releases: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
9: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield sun.tools.jar.Main.releaseValue:I
iconst_m1
if_icmpeq 31
10: aconst_null
astore 3
start local 3 11: iconst_0
istore 4
start local 4 12: goto 15
13: StackMap locals: sun.tools.jar.Main$ModuleInfoEntry int
StackMap stack:
aload 1
iload 4
aaload
astore 3
14: iinc 4 1
15: StackMap locals:
StackMap stack:
iload 4
aload 1
arraylength
if_icmpge 16
aload 0
aload 1
iload 4
aaload
invokevirtual sun.tools.jar.Main.lessThanEqualReleaseValue:(Lsun/tools/jar/Main$ModuleInfoEntry;)Z
ifne 13
16: StackMap locals:
StackMap stack:
aload 3
ifnonnull 21
17: aload 0
ldc "error.no.operative.descriptor"
18: aload 0
getfield sun.tools.jar.Main.releaseValue:I
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
19: invokestatic sun.tools.jar.Main.formatMsg:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
20: iconst_0
ireturn
21: StackMap locals:
StackMap stack:
aload 3
invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
ldc ""
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 22: aconst_null
astore 6
aconst_null
astore 7
23: aload 3
invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
astore 8
start local 8 24: aload 0
aload 8
aload 5
invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
25: aload 8
ifnull 43
aload 8
invokevirtual java.io.InputStream.close:()V
goto 43
StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String sun.tools.jar.Main$ModuleInfoEntry int java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
26: astore 6
aload 8
ifnull 27
aload 8
invokevirtual java.io.InputStream.close:()V
end local 8 StackMap locals:
StackMap stack:
27: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
28: astore 7
aload 6
ifnonnull 29
aload 7
astore 6
goto 30
StackMap locals:
StackMap stack:
29: aload 6
aload 7
if_acmpeq 30
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
30: aload 6
athrow
end local 5 end local 4 end local 3 31: StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String
StackMap stack:
aload 1
iconst_0
aaload
invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
ldc "module-info.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 42
32: aload 1
iconst_0
aaload
invokeinterface sun.tools.jar.Main$ModuleInfoEntry.uriString:()Ljava/util/Optional;
ldc ""
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 33: aconst_null
astore 4
aconst_null
astore 5
34: aload 1
iconst_0
aaload
invokeinterface sun.tools.jar.Main$ModuleInfoEntry.bytes:()Ljava/io/InputStream;
astore 6
start local 6 35: aload 0
aload 6
aload 3
invokevirtual sun.tools.jar.Main.describeModule:(Ljava/io/InputStream;Ljava/lang/String;)V
36: aload 6
ifnull 43
aload 6
invokevirtual java.io.InputStream.close:()V
goto 43
StackMap locals: sun.tools.jar.Main sun.tools.jar.Main$ModuleInfoEntry[] java.lang.String java.lang.String java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
37: astore 4
aload 6
ifnull 38
aload 6
invokevirtual java.io.InputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
38: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
39: astore 5
aload 4
ifnonnull 40
aload 5
astore 4
goto 41
StackMap locals:
StackMap stack:
40: aload 4
aload 5
if_acmpeq 41
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
41: aload 4
athrow
end local 3 42: StackMap locals:
StackMap stack:
aload 0
ldc "error.no.root.descriptor"
invokestatic sun.tools.jar.Main.getMsg:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
43: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lsun/tools/jar/Main;
0 44 1 infos [Lsun/tools/jar/Main$ModuleInfoEntry;
7 44 2 releases Ljava/lang/String;
11 31 3 entry Lsun/tools/jar/Main$ModuleInfoEntry;
12 31 4 i I
22 31 5 uriString Ljava/lang/String;
24 27 8 is Ljava/io/InputStream;
33 42 3 uriString Ljava/lang/String;
35 38 6 is Ljava/io/InputStream;
Exception table:
from to target type
24 25 26 any
23 28 28 any
35 36 37 any
34 39 39 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
infos
static <T> java.lang.String toLowerCaseString(java.util.Collection<T>);
descriptor: (Ljava/util/Collection;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 1
ldc ""
areturn
1: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokeinterface java.util.Collection.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;
sun/tools/jar/Main.lambda$17(Ljava/lang/Object;)Ljava/lang/String; (6)
(Ljava/lang/Object;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
2: invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
ldc " "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 set Ljava/util/Collection<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<TT;>;)Ljava/lang/String;
MethodParameters:
Name Flags
set
static <T> java.lang.String toString(java.util.Collection<T>);
descriptor: (Ljava/util/Collection;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 1
ldc ""
areturn
1: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokeinterface java.util.Collection.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;
sun/tools/jar/Main.lambda$18(Ljava/lang/Object;)Ljava/lang/String; (6)
(Ljava/lang/Object;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
ldc " "
invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 set Ljava/util/Collection<TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/Collection<TT;>;)Ljava/lang/String;
MethodParameters:
Name Flags
set
private void describeModule(java.io.InputStream, java.lang.String);
descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aconst_null
invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
astore 3
start local 3 1: aload 3
invokevirtual jdk.internal.module.ModuleInfo$Attributes.descriptor:()Ljava/lang/module/ModuleDescriptor;
astore 4
start local 4 2: aload 3
invokevirtual jdk.internal.module.ModuleInfo$Attributes.target:()Ljdk/internal/module/ModuleTarget;
astore 5
start local 5 3: aload 3
invokevirtual jdk.internal.module.ModuleInfo$Attributes.recordedHashes:()Ljdk/internal/module/ModuleHashes;
astore 6
start local 6 4: aload 0
aload 4
aload 5
aload 6
aload 2
invokevirtual sun.tools.jar.Main.describeModule:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
5: return
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 6 0 this Lsun/tools/jar/Main;
0 6 1 entryInputStream Ljava/io/InputStream;
0 6 2 uriString Ljava/lang/String;
1 6 3 attrs Ljdk/internal/module/ModuleInfo$Attributes;
2 6 4 md Ljava/lang/module/ModuleDescriptor;
3 6 5 target Ljdk/internal/module/ModuleTarget;
4 6 6 hashes Ljdk/internal/module/ModuleHashes;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
entryInputStream
uriString
private void describeModule(java.lang.module.ModuleDescriptor, jdk.internal.module.ModuleTarget, jdk.internal.module.ModuleHashes, java.lang.String);
descriptor: (Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 5
start local 5 1: aload 5
aload 1
invokevirtual java.lang.module.ModuleDescriptor.toNameAndVersion:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 4
invokevirtual java.lang.String.isEmpty:()Z
ifne 4
3: aload 5
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 1
invokevirtual java.lang.module.ModuleDescriptor.isOpen:()Z
ifeq 6
5: aload 5
ldc " open"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.module.ModuleDescriptor.isAutomatic:()Z
ifeq 8
7: aload 5
ldc " automatic"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: StackMap locals:
StackMap stack:
aload 5
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
9: aload 1
invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
10: 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;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
11: 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/Main.lambda$20(Ljava/lang/module/ModuleDescriptor$Exports;)Z (6)
(Ljava/lang/module/ModuleDescriptor$Exports;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
12: aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$21(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
(Ljava/lang/module/ModuleDescriptor$Exports;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
13: aload 1
invokevirtual java.lang.module.ModuleDescriptor.requires:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
14: aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$22(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V (6)
(Ljava/lang/module/ModuleDescriptor$Requires;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
15: aload 1
invokevirtual java.lang.module.ModuleDescriptor.uses:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
16: aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$23(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
17: aload 1
invokevirtual java.lang.module.ModuleDescriptor.provides:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
18: 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.service()Ljava/lang/String; (5)
(Ljava/lang/module/ModuleDescriptor$Provides;)Ljava/lang/String;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
19: aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$25(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V (6)
(Ljava/lang/module/ModuleDescriptor$Provides;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
20: aload 1
invokevirtual java.lang.module.ModuleDescriptor.exports:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
21: 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;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
22: 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
java/lang/module/ModuleDescriptor$Exports.isQualified()Z (5)
(Ljava/lang/module/ModuleDescriptor$Exports;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
23: aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$28(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V (6)
(Ljava/lang/module/ModuleDescriptor$Exports;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
24: aload 1
invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
25: 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;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
26: 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/Main.lambda$30(Ljava/lang/module/ModuleDescriptor$Opens;)Z (6)
(Ljava/lang/module/ModuleDescriptor$Opens;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
27: aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$31(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
(Ljava/lang/module/ModuleDescriptor$Opens;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
28: aload 1
invokevirtual java.lang.module.ModuleDescriptor.opens:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
29: 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;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokeinterface java.util.stream.Stream.sorted:(Ljava/util/Comparator;)Ljava/util/stream/Stream;
30: 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
java/lang/module/ModuleDescriptor$Opens.isQualified()Z (5)
(Ljava/lang/module/ModuleDescriptor$Opens;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
31: aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$34(Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V (6)
(Ljava/lang/module/ModuleDescriptor$Opens;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
32: new java.util.TreeSet
dup
aload 1
invokevirtual java.lang.module.ModuleDescriptor.packages:()Ljava/util/Set;
invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
astore 6
start local 6 33: aload 1
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 6
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
34: aload 1
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 6
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
35: aload 6
aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$39(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
(Ljava/lang/String;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
36: aload 1
invokevirtual java.lang.module.ModuleDescriptor.mainClass:()Ljava/util/Optional;
aload 5
invokedynamic accept(Ljava/lang/StringBuilder;)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/Main.lambda$40(Ljava/lang/StringBuilder;Ljava/lang/String;)V (6)
(Ljava/lang/String;)V
invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
37: aload 2
ifnull 41
38: aload 2
invokevirtual jdk.internal.module.ModuleTarget.targetPlatform:()Ljava/lang/String;
astore 9
start local 9 39: aload 9
invokevirtual java.lang.String.isEmpty:()Z
ifne 41
40: aload 5
ldc "platform "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 9 41: StackMap locals: java.util.Set
StackMap stack:
aload 3
ifnull 45
42: aload 3
invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
43: aload 5
aload 3
invokedynamic accept(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;)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/Main.lambda$41(Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V (6)
(Ljava/lang/String;)V
44: invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
45: StackMap locals:
StackMap stack:
aload 0
aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.output:(Ljava/lang/String;)V
46: return
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 47 0 this Lsun/tools/jar/Main;
0 47 1 md Ljava/lang/module/ModuleDescriptor;
0 47 2 target Ljdk/internal/module/ModuleTarget;
0 47 3 hashes Ljdk/internal/module/ModuleHashes;
0 47 4 uriString Ljava/lang/String;
1 47 5 sb Ljava/lang/StringBuilder;
33 47 6 concealed Ljava/util/Set<Ljava/lang/String;>;
39 41 9 targetPlatform Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
md
target
hashes
uriString
private static java.lang.String toHex(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
arraylength
iconst_1
ishl
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 1
start local 1 1: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: byte[] java.lang.StringBuilder top int int byte[]
StackMap stack:
2: aload 5
iload 3
baload
istore 2
start local 2 3: aload 1
ldc "%02x"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
sipush 255
iand
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 ba [B
1 7 1 sb Ljava/lang/StringBuilder;
3 4 2 b B
MethodParameters:
Name Flags
ba
static java.lang.String toBinaryName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 classname Ljava/lang/String;
MethodParameters:
Name Flags
classname
private boolean checkModuleInfo(byte[], java.util.Set<java.lang.String>);
descriptor: ([BLjava/util/Set;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
istore 3
start local 3 1: aload 1
ifnull 13
2: aload 1
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
astore 4
start local 4 3: aload 4
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;
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;
4: aload 2
invokedynamic test(Ljava/util/Set;)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/Main.lambda$44(Ljava/util/Set;Ljava/lang/String;)Z (6)
(Ljava/lang/String;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
5: aload 0
invokedynamic accept(Lsun/tools/jar/Main;)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/Main.lambda$45(Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.peek:(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
6: invokeinterface java.util.stream.Stream.count:()J
lconst_0
7: lcmp
ifeq 13
8: iconst_0
istore 3
end local 4 9: goto 13
StackMap locals: sun.tools.jar.Main byte[] java.util.Set int
StackMap stack: java.lang.module.InvalidModuleDescriptorException
10: astore 4
start local 4 11: aload 0
aload 4
invokevirtual java.lang.module.InvalidModuleDescriptorException.getMessage:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.fatalError:(Ljava/lang/String;)V
12: iconst_0
istore 3
end local 4 13: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/tools/jar/Main;
0 14 1 moduleInfoBytes [B
0 14 2 entries Ljava/util/Set<Ljava/lang/String;>;
1 14 3 ok Z
3 9 4 md Ljava/lang/module/ModuleDescriptor;
11 13 4 x Ljava/lang/module/InvalidModuleDescriptorException;
Exception table:
from to target type
2 9 10 Class java.lang.module.InvalidModuleDescriptorException
Exceptions:
throws java.io.IOException
Signature: ([BLjava/util/Set<Ljava/lang/String;>;)Z
MethodParameters:
Name Flags
moduleInfoBytes
entries
private void addExtendedModuleAttributes(java.util.Map<java.lang.String, byte[]>, java.util.Set<java.lang.String>);
descriptor: (Ljava/util/Map;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: sun.tools.jar.Main java.util.Map java.util.Set top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 2: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast byte[]
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
invokestatic java.lang.module.ModuleDescriptor.read:(Ljava/nio/ByteBuffer;)Ljava/lang/module/ModuleDescriptor;
astore 5
start local 5 3: aload 3
aload 0
aload 5
aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast byte[]
aload 2
invokevirtual sun.tools.jar.Main.extendedInfoBytes:(Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
invokeinterface java.util.Map$Entry.setValue:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/tools/jar/Main;
0 6 1 moduleInfos Ljava/util/Map<Ljava/lang/String;[B>;
0 6 2 packages Ljava/util/Set<Ljava/lang/String;>;
2 4 3 e Ljava/util/Map$Entry<Ljava/lang/String;[B>;
3 4 5 md Ljava/lang/module/ModuleDescriptor;
Exceptions:
throws java.io.IOException
Signature: (Ljava/util/Map<Ljava/lang/String;[B>;Ljava/util/Set<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
moduleInfos
packages
static boolean isModuleInfoEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
ldc "module-info.class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 14
1: aload 0
invokevirtual java.lang.String.length:()I
ldc "module-info.class"
invokevirtual java.lang.String.length:()I
isub
istore 1
start local 1 2: iload 1
ifne 4
3: iconst_1
ireturn
4: StackMap locals: int
StackMap stack:
aload 0
ldc "META-INF/versions/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 14
5: getstatic sun.tools.jar.Main.VERSIONS_DIR_LENGTH:I
istore 2
start local 2 6: iload 2
iload 1
if_icmpne 11
7: iconst_0
ireturn
8: StackMap locals: int
StackMap stack:
aload 0
iload 2
iinc 2 1
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 9: iload 3
bipush 48
if_icmplt 10
iload 3
bipush 57
if_icmple 11
10: StackMap locals: int
StackMap stack:
iconst_0
ireturn
end local 3 11: StackMap locals:
StackMap stack:
iload 2
iload 1
iconst_1
isub
if_icmplt 8
12: aload 0
iload 2
invokevirtual java.lang.String.charAt:(I)C
bipush 47
if_icmpne 13
iconst_1
ireturn
StackMap locals:
StackMap stack:
13: iconst_0
ireturn
end local 2 end local 1 14: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 name Ljava/lang/String;
2 14 1 end I
6 14 2 off I
9 11 3 c C
MethodParameters:
Name Flags
name
private byte[] extendedInfoBytes(java.lang.module.ModuleDescriptor, byte[], java.util.Set<java.lang.String>);
descriptor: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 4
start local 4 1: new java.io.ByteArrayInputStream
dup
aload 2
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 5
start local 5 2: aload 5
invokestatic jdk.internal.module.ModuleInfoExtender.newExtender:(Ljava/io/InputStream;)Ljdk/internal/module/ModuleInfoExtender;
astore 6
start local 6 3: aload 6
aload 3
invokevirtual jdk.internal.module.ModuleInfoExtender.packages:(Ljava/util/Set;)Ljdk/internal/module/ModuleInfoExtender;
pop
4: aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
ifnull 6
5: aload 6
aload 0
getfield sun.tools.jar.Main.ename:Ljava/lang/String;
invokevirtual jdk.internal.module.ModuleInfoExtender.mainClass:(Ljava/lang/String;)Ljdk/internal/module/ModuleInfoExtender;
pop
6: StackMap locals: java.io.ByteArrayOutputStream java.io.InputStream jdk.internal.module.ModuleInfoExtender
StackMap stack:
aload 0
getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
ifnull 8
7: aload 6
aload 0
getfield sun.tools.jar.Main.moduleVersion:Ljava/lang/module/ModuleDescriptor$Version;
invokevirtual jdk.internal.module.ModuleInfoExtender.version:(Ljava/lang/module/ModuleDescriptor$Version;)Ljdk/internal/module/ModuleInfoExtender;
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.modulesToHash:Ljava/util/regex/Pattern;
ifnull 16
9: aload 1
invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
astore 7
start local 7 10: new sun.tools.jar.Main$Hasher
dup
aload 0
aload 1
aload 0
getfield sun.tools.jar.Main.fname:Ljava/lang/String;
invokespecial sun.tools.jar.Main$Hasher.<init>:(Lsun/tools/jar/Main;Ljava/lang/module/ModuleDescriptor;Ljava/lang/String;)V
astore 8
start local 8 11: aload 8
aload 7
invokevirtual sun.tools.jar.Main$Hasher.computeHashes:(Ljava/lang/String;)Ljdk/internal/module/ModuleHashes;
astore 9
start local 9 12: aload 9
ifnull 15
13: aload 6
aload 9
invokevirtual jdk.internal.module.ModuleInfoExtender.hashes:(Ljdk/internal/module/ModuleHashes;)Ljdk/internal/module/ModuleInfoExtender;
pop
14: goto 16
15: StackMap locals: java.lang.String sun.tools.jar.Main$Hasher jdk.internal.module.ModuleHashes
StackMap stack:
aload 0
new java.lang.StringBuilder
dup
ldc "warning: no module is recorded in hash in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual sun.tools.jar.Main.warn:(Ljava/lang/String;)V
end local 9 end local 8 end local 7 16: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
invokevirtual jdk.internal.module.ModuleResolution.value:()I
ifeq 18
17: aload 6
aload 0
getfield sun.tools.jar.Main.moduleResolution:Ljdk/internal/module/ModuleResolution;
invokevirtual jdk.internal.module.ModuleInfoExtender.moduleResolution:(Ljdk/internal/module/ModuleResolution;)Ljdk/internal/module/ModuleInfoExtender;
pop
18: StackMap locals:
StackMap stack:
aload 6
aload 4
invokevirtual jdk.internal.module.ModuleInfoExtender.write:(Ljava/io/OutputStream;)V
19: aload 4
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
areturn
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 20 0 this Lsun/tools/jar/Main;
0 20 1 md Ljava/lang/module/ModuleDescriptor;
0 20 2 miBytes [B
0 20 3 packages Ljava/util/Set<Ljava/lang/String;>;
1 20 4 baos Ljava/io/ByteArrayOutputStream;
2 20 5 is Ljava/io/InputStream;
3 20 6 extender Ljdk/internal/module/ModuleInfoExtender;
10 16 7 mn Ljava/lang/String;
11 16 8 hasher Lsun/tools/jar/Main$Hasher;
12 16 9 moduleHashes Ljdk/internal/module/ModuleHashes;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/module/ModuleDescriptor;[BLjava/util/Set<Ljava/lang/String;>;)[B
MethodParameters:
Name Flags
md
miBytes
packages
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(sun.tools.jar.Main$Entry);
descriptor: (Lsun/tools/jar/Main$Entry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.tools.jar.Main$Entry.isDir:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 e Lsun/tools/jar/Main$Entry;
private void lambda$3(java.util.Set, java.util.Set, sun.tools.jar.Main$Entry);
descriptor: (Ljava/util/Set;Ljava/util/Set;Lsun/tools/jar/Main$Entry;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 3 0: aload 0
aload 1
aload 3
getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
1: aload 2
aload 3
getfield sun.tools.jar.Main$Entry.name:Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/Main;
0 3 3 e Lsun/tools/jar/Main$Entry;
private static java.lang.String[] lambda$5(int);
descriptor: (I)[Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iload 0
anewarray java.lang.String
areturn
LocalVariableTable:
Start End Slot Name Signature
private java.lang.String lambda$6(java.util.Set, int, java.lang.String);
descriptor: (Ljava/util/Set;ILjava/lang/String;)Ljava/lang/String;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 3 0: aload 0
aload 3
aload 1
iconst_0
invokevirtual sun.tools.jar.Main.toEntryName:(Ljava/lang/String;Ljava/util/Set;Z)Ljava/lang/String;
iload 2
invokestatic sun.tools.jar.Main.toVersionedName:(Ljava/lang/String;I)Ljava/lang/String;
areturn
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jar/Main;
0 1 3 f Ljava/lang/String;
private void lambda$7(java.util.Set, java.lang.String);
descriptor: (Ljava/util/Set;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
aload 2
invokevirtual sun.tools.jar.Main.addPackageIfNamed:(Ljava/util/Set;Ljava/lang/String;)V
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jar/Main;
0 1 2 je Ljava/lang/String;
private static void lambda$8(java.util.Map, java.lang.Integer);
descriptor: (Ljava/util/Map;Ljava/lang/Integer;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=4, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String[]
astore 2
start local 2 1: aload 2
ifnull 7
2: iconst_0
istore 3
start local 3 3: goto 6
4: StackMap locals: java.lang.String[] int
StackMap stack:
aload 2
iload 3
aload 2
iload 3
aaload
getstatic java.io.File.separatorChar:C
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
aastore
5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 2
arraylength
if_icmplt 4
end local 3 end local 2 7: StackMap locals:
StackMap stack:
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 8 1 version Ljava/lang/Integer;
1 7 2 files [Ljava/lang/String;
3 7 3 i I
private static boolean lambda$9(java.util.zip.ZipEntry);
descriptor: (Ljava/util/zip/ZipEntry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
invokestatic sun.tools.jar.Main.isModuleInfoEntry:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Ljava/util/zip/ZipEntry;
private static sun.tools.jar.Main$ZipFileModuleInfoEntry lambda$10(java.util.zip.ZipFile, java.util.zip.ZipEntry);
descriptor: (Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=4, locals=2, args_size=2
start local 1 0: new sun.tools.jar.Main$ZipFileModuleInfoEntry
dup
aload 0
aload 1
invokespecial sun.tools.jar.Main$ZipFileModuleInfoEntry.<init>:(Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)V
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 e Ljava/util/zip/ZipEntry;
private static sun.tools.jar.Main$ZipFileModuleInfoEntry[] lambda$11(int);
descriptor: (I)[Lsun/tools/jar/Main$ZipFileModuleInfoEntry;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iload 0
anewarray sun.tools.jar.Main$ZipFileModuleInfoEntry
areturn
LocalVariableTable:
Start End Slot Name Signature
private static sun.tools.jar.Main$ModuleInfoEntry[] lambda$13(int);
descriptor: (I)[Lsun/tools/jar/Main$ModuleInfoEntry;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iload 0
anewarray sun.tools.jar.Main$ModuleInfoEntry
areturn
LocalVariableTable:
Start End Slot Name Signature
private static boolean lambda$14(sun.tools.jar.Main$ModuleInfoEntry);
descriptor: (Lsun/tools/jar/Main$ModuleInfoEntry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface sun.tools.jar.Main$ModuleInfoEntry.name:()Ljava/lang/String;
ldc "module-info.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 e Lsun/tools/jar/Main$ModuleInfoEntry;
private static java.lang.String lambda$17(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
getstatic java.util.Locale.ROOT:Ljava/util/Locale;
invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e TT;
private static java.lang.String lambda$18(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e TT;
private static boolean lambda$20(java.lang.module.ModuleDescriptor$Exports);
descriptor: (Ljava/lang/module/ModuleDescriptor$Exports;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.module.ModuleDescriptor$Exports.isQualified:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 e Ljava/lang/module/ModuleDescriptor$Exports;
private static void lambda$21(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "exports "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: aload 1
invokevirtual java.lang.module.ModuleDescriptor$Exports.modifiers:()Ljava/util/Set;
invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 e Ljava/lang/module/ModuleDescriptor$Exports;
private static void lambda$22(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Requires);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Requires;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "requires "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Requires.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: aload 1
invokevirtual java.lang.module.ModuleDescriptor$Requires.modifiers:()Ljava/util/Set;
invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 r Ljava/lang/module/ModuleDescriptor$Requires;
private static void lambda$23(java.lang.StringBuilder, java.lang.String);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "uses "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 s Ljava/lang/String;
private static void lambda$25(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Provides);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Provides;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "provides "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Provides.service:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc " with"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 1
invokevirtual java.lang.module.ModuleDescriptor$Provides.providers:()Ljava/util/List;
invokestatic sun.tools.jar.Main.toString:(Ljava/util/Collection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 4 1 p Ljava/lang/module/ModuleDescriptor$Provides;
private static void lambda$28(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Exports);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Exports;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "qualified exports "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Exports.source:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: ldc " to"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Exports.targets:()Ljava/util/Set;
invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 e Ljava/lang/module/ModuleDescriptor$Exports;
private static boolean lambda$30(java.lang.module.ModuleDescriptor$Opens);
descriptor: (Ljava/lang/module/ModuleDescriptor$Opens;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.module.ModuleDescriptor$Opens.isQualified:()Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 o Ljava/lang/module/ModuleDescriptor$Opens;
private static void lambda$31(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "opens "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: aload 1
invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 o Ljava/lang/module/ModuleDescriptor$Opens;
private static void lambda$34(java.lang.StringBuilder, java.lang.module.ModuleDescriptor$Opens);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/module/ModuleDescriptor$Opens;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "qualified opens "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Opens.source:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: aload 1
invokevirtual java.lang.module.ModuleDescriptor$Opens.modifiers:()Ljava/util/Set;
invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc " to"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.module.ModuleDescriptor$Opens.targets:()Ljava/util/Set;
invokestatic sun.tools.jar.Main.toLowerCaseString:(Ljava/util/Collection;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 4 1 o Ljava/lang/module/ModuleDescriptor$Opens;
private static void lambda$39(java.lang.StringBuilder, java.lang.String);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "contains "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 p Ljava/lang/String;
private static void lambda$40(java.lang.StringBuilder, java.lang.String);
descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
ldc "main-class "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 v Ljava/lang/String;
private static void lambda$41(java.lang.StringBuilder, jdk.internal.module.ModuleHashes, java.lang.String);
descriptor: (Ljava/lang/StringBuilder;Ljdk/internal/module/ModuleHashes;Ljava/lang/String;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 2 0: aload 0
ldc "hashes "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
1: aload 1
invokevirtual jdk.internal.module.ModuleHashes.algorithm:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
2: aload 1
aload 2
invokevirtual jdk.internal.module.ModuleHashes.hashFor:(Ljava/lang/String;)[B
invokestatic sun.tools.jar.Main.toHex:([B)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 mod Ljava/lang/String;
private static boolean lambda$44(java.util.Set, java.lang.String);
descriptor: (Ljava/util/Set;Ljava/lang/String;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokestatic sun.tools.jar.Main.toBinaryName:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 p Ljava/lang/String;
private void lambda$45(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.Main.fatalError:(Ljava/lang/String;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/tools/jar/Main;
0 1 1 p Ljava/lang/String;
}
SourceFile: "Main.java"
NestMembers:
sun.tools.jar.Main$1 sun.tools.jar.Main$CRC32OutputStream sun.tools.jar.Main$Entry sun.tools.jar.Main$Hasher sun.tools.jar.Main$Hasher$1 sun.tools.jar.Main$Hasher$2 sun.tools.jar.Main$ModuleInfoEntry sun.tools.jar.Main$StreamedModuleInfoEntry sun.tools.jar.Main$ZipFileModuleInfoEntry
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 Modifier = java.lang.module.ModuleDescriptor$Exports$Modifier of java.lang.module.ModuleDescriptor$Exports
public final Opens = java.lang.module.ModuleDescriptor$Opens of java.lang.module.ModuleDescriptor
public final Modifier = java.lang.module.ModuleDescriptor$Opens$Modifier of java.lang.module.ModuleDescriptor$Opens
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
public abstract Entry = java.util.Map$Entry of java.util.Map
public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
public abstract Packer = java.util.jar.Pack200$Packer of java.util.jar.Pack200
public abstract Unpacker = java.util.jar.Pack200$Unpacker of java.util.jar.Pack200
public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo
BadArgs = sun.tools.jar.GNUStyleOptions$BadArgs of sun.tools.jar.GNUStyleOptions
sun.tools.jar.Main$1
private CRC32OutputStream = sun.tools.jar.Main$CRC32OutputStream of sun.tools.jar.Main
private Entry = sun.tools.jar.Main$Entry of sun.tools.jar.Main
private Hasher = sun.tools.jar.Main$Hasher of sun.tools.jar.Main
abstract ModuleInfoEntry = sun.tools.jar.Main$ModuleInfoEntry of sun.tools.jar.Main
StreamedModuleInfoEntry = sun.tools.jar.Main$StreamedModuleInfoEntry of sun.tools.jar.Main
ZipFileModuleInfoEntry = sun.tools.jar.Main$ZipFileModuleInfoEntry of sun.tools.jar.Main
InvalidJarException = sun.tools.jar.Validator$InvalidJarException of sun.tools.jar.Validator