public class org.eclipse.jetty.util.MultiReleaseJarFile implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jetty.util.MultiReleaseJarFile
super_class: java.lang.Object
{
private static final java.lang.String META_INF_VERSIONS;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "META-INF/versions/"
private final java.util.jar.JarFile jarFile;
descriptor: Ljava/util/jar/JarFile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int platform;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean multiRelease;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.String, org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry> entries;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;>;
public void <init>(java.io.File);
descriptor: (Ljava/io/File;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic org.eclipse.jetty.util.JavaVersion.VERSION:Lorg/eclipse/jetty/util/JavaVersion;
invokevirtual org.eclipse.jetty.util.JavaVersion.getPlatform:()I
iconst_0
invokespecial org.eclipse.jetty.util.MultiReleaseJarFile.<init>:(Ljava/io/File;IZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
0 2 1 file Ljava/io/File;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
public void <init>(java.io.File, int, boolean);
descriptor: (Ljava/io/File;IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, 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 1
ifnull 2
aload 1
invokevirtual java.io.File.exists:()Z
ifeq 2
aload 1
invokevirtual java.io.File.canRead:()Z
ifeq 2
aload 1
invokevirtual java.io.File.isDirectory:()Z
ifeq 3
2: StackMap locals: org.eclipse.jetty.util.MultiReleaseJarFile java.io.File int int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "bad jar file: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
new java.util.jar.JarFile
dup
aload 1
iconst_1
iconst_1
invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;ZI)V
putfield org.eclipse.jetty.util.MultiReleaseJarFile.jarFile:Ljava/util/jar/JarFile;
4: aload 0
iload 2
putfield org.eclipse.jetty.util.MultiReleaseJarFile.platform:I
5: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.jarFile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
astore 4
start local 4 6: aload 4
ifnonnull 8
7: aload 0
iconst_0
putfield org.eclipse.jetty.util.MultiReleaseJarFile.multiRelease:Z
goto 9
8: StackMap locals: java.util.jar.Manifest
StackMap stack:
aload 0
aload 4
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
ldc "Multi-Release"
invokevirtual java.util.jar.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
putfield org.eclipse.jetty.util.MultiReleaseJarFile.multiRelease:Z
9: StackMap locals:
StackMap stack:
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
astore 5
start local 5 10: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.jarFile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.stream:()Ljava/util/stream/Stream;
11: aload 0
invokedynamic apply(Lorg/eclipse/jetty/util/MultiReleaseJarFile;)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;
org/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry.<init>(Lorg/eclipse/jetty/util/MultiReleaseJarFile;Ljava/util/jar/JarEntry;)V (8)
(Ljava/util/jar/JarEntry;)Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
12: iload 3
invokedynamic test(Z)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
org/eclipse/jetty/util/MultiReleaseJarFile.lambda$1(ZLorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Z (6)
(Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
13: aload 5
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
org/eclipse/jetty/util/MultiReleaseJarFile.lambda$2(Ljava/util/Map;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)V (6)
(Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
14: aload 5
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
start local 6 15: goto 24
16: StackMap locals: java.util.Map java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 17: aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
astore 8
start local 8 18: aload 8
getfield org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.inner:Z
ifeq 24
19: aload 8
getfield org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.outer:Ljava/lang/String;
ifnonnull 20
aconst_null
goto 21
StackMap locals: java.util.Map$Entry org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
StackMap stack:
20: aload 5
aload 8
getfield org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.outer:Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
StackMap locals:
StackMap stack: org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
21: astore 9
start local 9 22: aload 9
ifnull 23
aload 9
getfield org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.version:I
aload 8
getfield org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.version:I
if_icmpeq 24
23: StackMap locals: org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
StackMap stack:
aload 6
invokeinterface java.util.Iterator.remove:()V
end local 9 end local 8 end local 7 24: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
end local 6 25: aload 0
aload 5
invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
putfield org.eclipse.jetty.util.MultiReleaseJarFile.entries:Ljava/util/Map;
26: 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 27 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
0 27 1 file Ljava/io/File;
0 27 2 javaPlatform I
0 27 3 includeDirectories Z
6 27 4 manifest Ljava/util/jar/Manifest;
10 27 5 map Ljava/util/Map<Ljava/lang/String;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;>;
15 25 6 i Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;>;>;
17 24 7 e Ljava/util/Map$Entry<Ljava/lang/String;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;>;
18 24 8 entry Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
22 24 9 outer Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
javaPlatform
includeDirectories
public boolean isMultiRelease();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.multiRelease:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
public int getVersion();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.platform:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
public java.util.stream.Stream<org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry> stream();
descriptor: ()Ljava/util/stream/Stream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.entries:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
Signature: ()Ljava/util/stream/Stream<Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;>;
public org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry getEntry(java.lang.String);
descriptor: (Ljava/lang/String;)Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.entries:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.jarFile:Ljava/util/jar/JarFile;
ifnull 2
1: aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.jarFile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
Exceptions:
throws java.io.IOException
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "%s[%b,%d]"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.eclipse.jetty.util.MultiReleaseJarFile.jarFile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
invokevirtual org.eclipse.jetty.util.MultiReleaseJarFile.isMultiRelease:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
dup
iconst_2
aload 0
invokevirtual org.eclipse.jetty.util.MultiReleaseJarFile.getVersion:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jetty/util/MultiReleaseJarFile;
private static boolean lambda$1(boolean, org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry);
descriptor: (ZLorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 1 0: iload 0
ifne 1
aload 1
invokevirtual org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.isDirectory:()Z
ifne 2
StackMap locals:
StackMap stack:
1: aload 1
invokevirtual org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.isApplicable:()Z
ifeq 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 4 1 e Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
private static void lambda$2(java.util.Map, org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry);
descriptor: (Ljava/util/Map;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 1 0: aload 0
aload 1
getfield org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.name:Ljava/lang/String;
aload 1
invokedynamic apply(Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
org/eclipse/jetty/util/MultiReleaseJarFile.lambda$3(Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;Ljava/lang/String;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry; (6)
(Ljava/lang/String;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
invokeinterface java.util.Map.compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 e Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
private static org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry lambda$3(org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry, java.lang.String, org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry);
descriptor: (Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;Ljava/lang/String;Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 1 start local 2 0: aload 2
ifnull 1
aload 2
aload 0
invokevirtual org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry.isReplacedBy:(Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;)Z
ifeq 2
StackMap locals:
StackMap stack:
1: aload 0
goto 3
StackMap locals:
StackMap stack:
2: aload 2
StackMap locals:
StackMap stack: org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
3: areturn
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 4 1 k Ljava/lang/String;
0 4 2 v Lorg/eclipse/jetty/util/MultiReleaseJarFile$VersionedJarEntry;
}
SourceFile: "MultiReleaseJarFile.java"
NestMembers:
org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public VersionedJarEntry = org.eclipse.jetty.util.MultiReleaseJarFile$VersionedJarEntry of org.eclipse.jetty.util.MultiReleaseJarFile