public class jdk.internal.module.ModulePath implements java.lang.module.ModuleFinder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.module.ModulePath
super_class: java.lang.Object
{
private static final java.lang.String MODULE_INFO;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "module-info.class"
private final java.lang.Runtime$Version releaseVersion;
descriptor: Ljava/lang/Runtime$Version;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isLinkPhase;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.internal.module.ModulePatcher patcher;
descriptor: Ljdk/internal/module/ModulePatcher;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.file.Path[] entries;
descriptor: [Ljava/nio/file/Path;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int next;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.Map<java.lang.String, java.lang.module.ModuleReference> cachedModules;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
private static final java.lang.String SERVICES_PREFIX;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "META-INF/services/"
private static final java.util.jar.Attributes$Name AUTOMATIC_MODULE_NAME;
descriptor: Ljava/util/jar/Attributes$Name;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final jdk.internal.perf.PerfCounter scanTime;
descriptor: Ljdk/internal/perf/PerfCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final jdk.internal.perf.PerfCounter moduleCount;
descriptor: Ljdk/internal/perf/PerfCounter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
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 Ljdk/internal/module/ModulePath;
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 jdk.internal.module.ModulePath.$assertionsDisabled:Z
3: new java.util.jar.Attributes$Name
dup
ldc "Automatic-Module-Name"
invokespecial java.util.jar.Attributes$Name.<init>:(Ljava/lang/String;)V
4: putstatic jdk.internal.module.ModulePath.AUTOMATIC_MODULE_NAME:Ljava/util/jar/Attributes$Name;
5: ldc "jdk.module.finder.modulepath.scanTime"
invokestatic jdk.internal.perf.PerfCounter.newPerfCounter:(Ljava/lang/String;)Ljdk/internal/perf/PerfCounter;
6: putstatic jdk.internal.module.ModulePath.scanTime:Ljdk/internal/perf/PerfCounter;
7: ldc "jdk.module.finder.modulepath.modules"
invokestatic jdk.internal.perf.PerfCounter.newPerfCounter:(Ljava/lang/String;)Ljdk/internal/perf/PerfCounter;
8: putstatic jdk.internal.module.ModulePath.moduleCount:Ljdk/internal/perf/PerfCounter;
9: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.Runtime$Version, boolean, jdk.internal.module.ModulePatcher, java.nio.file.Path[]);
descriptor: (Ljava/lang/Runtime$Version;ZLjdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=3, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield jdk.internal.module.ModulePath.cachedModules:Ljava/util/Map;
2: aload 0
aload 1
putfield jdk.internal.module.ModulePath.releaseVersion:Ljava/lang/Runtime$Version;
3: aload 0
iload 2
putfield jdk.internal.module.ModulePath.isLinkPhase:Z
4: aload 0
aload 3
putfield jdk.internal.module.ModulePath.patcher:Ljdk/internal/module/ModulePatcher;
5: aload 0
aload 4
invokevirtual java.nio.file.Path[].clone:()Ljava/lang/Object;
checkcast java.nio.file.Path[]
putfield jdk.internal.module.ModulePath.entries:[Ljava/nio/file/Path;
6: aload 0
getfield jdk.internal.module.ModulePath.entries:[Ljava/nio/file/Path;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 10
StackMap locals: jdk.internal.module.ModulePath java.lang.Runtime$Version int jdk.internal.module.ModulePatcher java.nio.file.Path[] top int int java.nio.file.Path[]
StackMap stack:
7: aload 8
iload 6
aaload
astore 5
start local 5 8: aload 5
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 9: iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
iload 7
if_icmplt 7
11: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/module/ModulePath;
0 12 1 version Ljava/lang/Runtime$Version;
0 12 2 isLinkPhase Z
0 12 3 patcher Ljdk/internal/module/ModulePatcher;
0 12 4 entries [Ljava/nio/file/Path;
8 9 5 entry Ljava/nio/file/Path;
MethodParameters:
Name Flags
version
isLinkPhase
patcher
entries
public static java.lang.module.ModuleFinder of(jdk.internal.module.ModulePatcher, java.nio.file.Path[]);
descriptor: (Ljdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new jdk.internal.module.ModulePath
dup
invokestatic java.util.jar.JarFile.runtimeVersion:()Ljava/lang/Runtime$Version;
iconst_0
aload 0
aload 1
invokespecial jdk.internal.module.ModulePath.<init>:(Ljava/lang/Runtime$Version;ZLjdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 patcher Ljdk/internal/module/ModulePatcher;
0 1 1 entries [Ljava/nio/file/Path;
MethodParameters:
Name Flags
patcher
entries
public static java.lang.module.ModuleFinder of(java.nio.file.Path[]);
descriptor: ([Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=1, args_size=1
start local 0 0: aconst_null
aload 0
invokestatic jdk.internal.module.ModulePath.of:(Ljdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 entries [Ljava/nio/file/Path;
MethodParameters:
Name Flags
entries
public static java.lang.module.ModuleFinder of(java.lang.Runtime$Version, boolean, java.nio.file.Path[]);
descriptor: (Ljava/lang/Runtime$Version;Z[Ljava/nio/file/Path;)Ljava/lang/module/ModuleFinder;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new jdk.internal.module.ModulePath
dup
aload 0
iload 1
aconst_null
aload 2
invokespecial jdk.internal.module.ModulePath.<init>:(Ljava/lang/Runtime$Version;ZLjdk/internal/module/ModulePatcher;[Ljava/nio/file/Path;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 version Ljava/lang/Runtime$Version;
0 1 1 isLinkPhase Z
0 1 2 entries [Ljava/nio/file/Path;
MethodParameters:
Name Flags
version
isLinkPhase
entries
public java.util.Optional<java.lang.module.ModuleReference> find(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield jdk.internal.module.ModulePath.cachedModules:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.module.ModuleReference
astore 2
start local 2 2: aload 2
ifnull 8
3: aload 2
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
4: StackMap locals: java.lang.module.ModuleReference
StackMap stack:
aload 0
invokevirtual jdk.internal.module.ModulePath.scanNextEntry:()V
5: aload 0
getfield jdk.internal.module.ModulePath.cachedModules:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.module.ModuleReference
astore 2
6: aload 2
ifnull 8
7: aload 2
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.module.ModulePath.hasNextEntry:()Z
ifne 4
9: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/module/ModulePath;
0 10 1 name Ljava/lang/String;
2 10 2 m Ljava/lang/module/ModuleReference;
Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/module/ModuleReference;>;
MethodParameters:
Name Flags
name
public java.util.Set<java.lang.module.ModuleReference> findAll();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.module.ModulePath.scanNextEntry:()V
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual jdk.internal.module.ModulePath.hasNextEntry:()Z
ifne 1
3: aload 0
getfield jdk.internal.module.ModulePath.cachedModules:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/module/ModulePath;
Signature: ()Ljava/util/Set<Ljava/lang/module/ModuleReference;>;
private boolean hasNextEntry();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.module.ModulePath.next:I
aload 0
getfield jdk.internal.module.ModulePath.entries:[Ljava/nio/file/Path;
arraylength
if_icmpge 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/module/ModulePath;
private void scanNextEntry();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=1
start local 0 0: aload 0
invokevirtual jdk.internal.module.ModulePath.hasNextEntry:()Z
ifeq 13
1: invokestatic java.lang.System.nanoTime:()J
lstore 1
start local 1 2: aload 0
getfield jdk.internal.module.ModulePath.entries:[Ljava/nio/file/Path;
aload 0
getfield jdk.internal.module.ModulePath.next:I
aaload
astore 3
start local 3 3: aload 0
aload 3
invokevirtual jdk.internal.module.ModulePath.scan:(Ljava/nio/file/Path;)Ljava/util/Map;
astore 4
start local 4 4: aload 0
dup
getfield jdk.internal.module.ModulePath.next:I
iconst_1
iadd
putfield jdk.internal.module.ModulePath.next:I
5: aload 0
getfield jdk.internal.module.ModulePath.cachedModules:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
istore 5
start local 5 6: aload 4
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 9
StackMap locals: jdk.internal.module.ModulePath long java.nio.file.Path java.util.Map int top java.util.Iterator
StackMap stack:
7: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 8: aload 0
getfield jdk.internal.module.ModulePath.cachedModules:Ljava/util/Map;
aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.module.ModuleReference
invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 6 9: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: aload 0
getfield jdk.internal.module.ModulePath.cachedModules:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iload 5
isub
istore 6
start local 6 11: getstatic jdk.internal.module.ModulePath.moduleCount:Ljdk/internal/perf/PerfCounter;
iload 6
i2l
invokevirtual jdk.internal.perf.PerfCounter.add:(J)V
12: getstatic jdk.internal.module.ModulePath.scanTime:Ljdk/internal/perf/PerfCounter;
lload 1
invokevirtual jdk.internal.perf.PerfCounter.addElapsedTimeFrom:(J)V
end local 6 end local 5 end local 4 end local 3 end local 1 13: StackMap locals: jdk.internal.module.ModulePath
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/module/ModulePath;
2 13 1 t0 J
3 13 3 entry Ljava/nio/file/Path;
4 13 4 modules Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
6 13 5 initialSize I
8 9 6 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
11 13 6 added I
private java.util.Map<java.lang.String, java.lang.module.ModuleReference> scan(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
ldc Ljava/nio/file/attribute/BasicFileAttributes;
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.readAttributes:(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
astore 2
start local 2 1: goto 6
end local 2 StackMap locals:
StackMap stack: java.nio.file.NoSuchFileException
2: pop
3: invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
areturn
4: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 5: new java.lang.module.FindException
dup
aload 3
invokespecial java.lang.module.FindException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 6: StackMap locals: java.nio.file.attribute.BasicFileAttributes
StackMap stack:
aload 2
invokeinterface java.nio.file.attribute.BasicFileAttributes.isDirectory:()Z
ifeq 11
7: aload 1
ldc "module-info.class"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 3
start local 3 8: aload 3
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.exists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
ifne 11
9: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.scanDirectory:(Ljava/nio/file/Path;)Ljava/util/Map;
10: areturn
end local 3 11: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual jdk.internal.module.ModulePath.readModule:(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/lang/module/ModuleReference;
astore 3
start local 3 12: aload 3
ifnull 16
13: aload 3
invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
astore 4
start local 4 14: aload 4
aload 3
invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
15: areturn
end local 4 16: StackMap locals: java.lang.module.ModuleReference
StackMap stack:
aload 0
getfield jdk.internal.module.ModulePath.isLinkPhase:Z
ifne 19
aload 1
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
ldc ".jmod"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 19
17: ldc "JMOD format not supported at execution time"
astore 4
start local 4 18: goto 20
end local 4 19: StackMap locals:
StackMap stack:
ldc "Module format not recognized"
astore 4
start local 4 20: StackMap locals: java.lang.String
StackMap stack:
new java.lang.module.FindException
dup
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;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.module.FindException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 21: StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.nio.file.attribute.BasicFileAttributes
StackMap stack: java.io.IOException
astore 3
start local 3 22: new java.lang.module.FindException
dup
aload 3
invokespecial java.lang.module.FindException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljdk/internal/module/ModulePath;
0 23 1 entry Ljava/nio/file/Path;
1 2 2 attrs Ljava/nio/file/attribute/BasicFileAttributes;
6 23 2 attrs Ljava/nio/file/attribute/BasicFileAttributes;
5 6 3 ioe Ljava/io/IOException;
8 11 3 mi Ljava/nio/file/Path;
12 21 3 mref Ljava/lang/module/ModuleReference;
14 16 4 name Ljava/lang/String;
18 19 4 msg Ljava/lang/String;
20 21 4 msg Ljava/lang/String;
22 23 3 ioe Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.nio.file.NoSuchFileException
0 1 4 Class java.io.IOException
6 10 21 Class java.io.IOException
11 15 21 Class java.io.IOException
16 21 21 Class java.io.IOException
Signature: (Ljava/nio/file/Path;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
MethodParameters:
Name Flags
entry
private java.util.Map<java.lang.String, java.lang.module.ModuleReference> scanDirectory(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=14, args_size=2
start local 0 start local 1 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 1: aconst_null
astore 3
aconst_null
astore 4
2: aload 1
invokestatic java.nio.file.Files.newDirectoryStream:(Ljava/nio/file/Path;)Ljava/nio/file/DirectoryStream;
astore 5
start local 5 3: aload 5
invokeinterface java.nio.file.DirectoryStream.iterator:()Ljava/util/Iterator;
astore 7
goto 20
StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.util.Map java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
4: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.file.Path
astore 6
start local 6 5: aload 6
ldc Ljava/nio/file/attribute/BasicFileAttributes;
iconst_0
anewarray java.nio.file.LinkOption
invokestatic java.nio.file.Files.readAttributes:(Ljava/nio/file/Path;Ljava/lang/Class;[Ljava/nio/file/LinkOption;)Ljava/nio/file/attribute/BasicFileAttributes;
astore 8
start local 8 6: goto 9
end local 8 StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.util.Map java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream java.nio.file.Path java.util.Iterator
StackMap stack: java.nio.file.NoSuchFileException
7: pop
8: goto 20
start local 8 9: StackMap locals: java.nio.file.attribute.BasicFileAttributes
StackMap stack:
aload 0
aload 6
aload 8
invokevirtual jdk.internal.module.ModulePath.readModule:(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/lang/module/ModuleReference;
astore 9
start local 9 10: aload 9
ifnull 20
11: aload 9
invokevirtual java.lang.module.ModuleReference.descriptor:()Ljava/lang/module/ModuleDescriptor;
invokevirtual java.lang.module.ModuleDescriptor.name:()Ljava/lang/String;
astore 10
start local 10 12: aload 2
aload 10
aload 9
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.module.ModuleReference
astore 11
start local 11 13: aload 11
ifnull 20
14: aload 0
aload 9
invokevirtual jdk.internal.module.ModulePath.fileName:(Ljava/lang/module/ModuleReference;)Ljava/lang/String;
astore 12
start local 12 15: aload 0
aload 11
invokevirtual jdk.internal.module.ModulePath.fileName:(Ljava/lang/module/ModuleReference;)Ljava/lang/String;
astore 13
start local 13 16: new java.lang.module.FindException
dup
new java.lang.StringBuilder
dup
ldc "Two versions of module "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
17: aload 10
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " found in "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
18: ldc " ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 12
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " and "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 13
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;
19: invokespecial java.lang.module.FindException.<init>:(Ljava/lang/String;)V
athrow
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 6 20: StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.util.Map java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
21: aload 5
ifnull 27
aload 5
invokeinterface java.nio.file.DirectoryStream.close:()V
goto 27
StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.util.Map java.lang.Throwable java.lang.Throwable java.nio.file.DirectoryStream
StackMap stack: java.lang.Throwable
22: astore 3
aload 5
ifnull 23
aload 5
invokeinterface java.nio.file.DirectoryStream.close:()V
end local 5 StackMap locals:
StackMap stack:
23: aload 3
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 4
aload 3
ifnonnull 25
aload 4
astore 3
goto 26
StackMap locals:
StackMap stack:
25: aload 3
aload 4
if_acmpeq 26
aload 3
aload 4
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
26: aload 3
athrow
27: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljdk/internal/module/ModulePath;
0 28 1 dir Ljava/nio/file/Path;
1 28 2 nameToReference Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
3 23 5 stream Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
5 20 6 entry Ljava/nio/file/Path;
6 7 8 attrs Ljava/nio/file/attribute/BasicFileAttributes;
9 20 8 attrs Ljava/nio/file/attribute/BasicFileAttributes;
10 20 9 mref Ljava/lang/module/ModuleReference;
12 20 10 name Ljava/lang/String;
13 20 11 previous Ljava/lang/module/ModuleReference;
15 20 12 fn1 Ljava/lang/String;
16 20 13 fn2 Ljava/lang/String;
Exception table:
from to target type
5 6 7 Class java.nio.file.NoSuchFileException
3 21 22 any
2 24 24 any
Exceptions:
throws java.io.IOException
Signature: (Ljava/nio/file/Path;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/module/ModuleReference;>;
MethodParameters:
Name Flags
dir
private java.lang.module.ModuleReference readModule(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Ljava/lang/module/ModuleReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.nio.file.attribute.BasicFileAttributes.isDirectory:()Z
ifeq 3
1: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.readExplodedModule:(Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
2: areturn
3: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.nio.file.attribute.BasicFileAttributes.isRegularFile:()Z
ifeq 17
4: aload 1
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 3
start local 3 5: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.isDefaultFileSystem:(Ljava/nio/file/Path;)Z
istore 4
start local 4 6: aload 3
ldc ".jar"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 14
7: iload 4
ifeq 10
8: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.readJar:(Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
9: areturn
10: StackMap locals: java.lang.String int
StackMap stack:
ldc "mlib"
iconst_0
anewarray java.nio.file.attribute.FileAttribute
invokestatic java.nio.file.Files.createTempDirectory:(Ljava/lang/String;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path;
astore 5
start local 5 11: aload 1
aload 5
aload 3
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
iconst_0
anewarray java.nio.file.CopyOption
invokestatic java.nio.file.Files.copy:(Ljava/nio/file/Path;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)Ljava/nio/file/Path;
astore 6
start local 6 12: aload 0
aload 6
invokevirtual jdk.internal.module.ModulePath.readJar:(Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
13: areturn
end local 6 end local 5 14: StackMap locals:
StackMap stack:
iload 4
ifeq 17
aload 0
getfield jdk.internal.module.ModulePath.isLinkPhase:Z
ifeq 17
aload 3
ldc ".jmod"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 17
15: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.readJMod:(Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
16: areturn
end local 4 end local 3 17: StackMap locals:
StackMap stack:
aconst_null
areturn
18: StackMap locals:
StackMap stack: java.lang.module.InvalidModuleDescriptorException
astore 3
start local 3 19: new java.lang.module.FindException
dup
new java.lang.StringBuilder
dup
ldc "Error reading module: "
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;
aload 3
invokespecial java.lang.module.FindException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/module/ModulePath;
0 20 1 entry Ljava/nio/file/Path;
0 20 2 attrs Ljava/nio/file/attribute/BasicFileAttributes;
5 17 3 fn Ljava/lang/String;
6 17 4 isDefaultFileSystem Z
11 14 5 tmpdir Ljava/nio/file/Path;
12 14 6 target Ljava/nio/file/Path;
19 20 3 e Ljava/lang/module/InvalidModuleDescriptorException;
Exception table:
from to target type
0 2 18 Class java.lang.module.InvalidModuleDescriptorException
3 9 18 Class java.lang.module.InvalidModuleDescriptorException
10 13 18 Class java.lang.module.InvalidModuleDescriptorException
14 16 18 Class java.lang.module.InvalidModuleDescriptorException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
entry
attrs
private java.lang.String fileName(java.lang.module.ModuleReference);
descriptor: (Ljava/lang/module/ModuleReference;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.module.ModuleReference.location:()Ljava/util/Optional;
aconst_null
invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.net.URI
astore 2
start local 2 1: aload 2
ifnull 6
2: aload 2
invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 5
3: aload 2
invokestatic java.nio.file.Paths.get:(Ljava/net/URI;)Ljava/nio/file/Path;
astore 3
start local 3 4: aload 3
invokeinterface java.nio.file.Path.getFileName:()Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
areturn
end local 3 5: StackMap locals: java.net.URI
StackMap stack:
aload 2
invokevirtual java.net.URI.toString:()Ljava/lang/String;
areturn
6: StackMap locals:
StackMap stack:
ldc "<unknown>"
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/module/ModulePath;
0 7 1 mref Ljava/lang/module/ModuleReference;
1 7 2 uri Ljava/net/URI;
4 5 3 file Ljava/nio/file/Path;
MethodParameters:
Name Flags
mref
private java.util.Set<java.lang.String> jmodPackages(jdk.internal.jmod.JmodFile);
descriptor: (Ljdk/internal/jmod/JmodFile;)Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.internal.jmod.JmodFile.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
jdk/internal/module/ModulePath.lambda$0(Ljdk/internal/jmod/JmodFile$Entry;)Z (6)
(Ljdk/internal/jmod/JmodFile$Entry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
2: invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
jdk/internal/jmod/JmodFile$Entry.name()Ljava/lang/String; (5)
(Ljdk/internal/jmod/JmodFile$Entry;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
3: aload 0
invokedynamic apply(Ljdk/internal/module/ModulePath;)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;
jdk/internal/module/ModulePath.toPackageName(Ljava/lang/String;)Ljava/util/Optional; (7)
(Ljava/lang/String;)Ljava/util/Optional;
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;
java/util/Optional.stream()Ljava/util/stream/Stream; (5)
(Ljava/util/Optional;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
5: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
6: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/module/ModulePath;
0 7 1 jf Ljdk/internal/jmod/JmodFile;
Signature: (Ljdk/internal/jmod/JmodFile;)Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
jf
private java.lang.module.ModuleReference readJMod(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: new jdk.internal.jmod.JmodFile
dup
aload 1
invokespecial jdk.internal.jmod.JmodFile.<init>:(Ljava/nio/file/Path;)V
astore 4
start local 4 2: aconst_null
astore 6
aconst_null
astore 7
3: aload 4
getstatic jdk.internal.jmod.JmodFile$Section.CLASSES:Ljdk/internal/jmod/JmodFile$Section;
ldc "module-info.class"
invokevirtual jdk.internal.jmod.JmodFile.getInputStream:(Ljdk/internal/jmod/JmodFile$Section;Ljava/lang/String;)Ljava/io/InputStream;
astore 8
start local 8 4: aload 8
aload 0
aload 4
invokedynamic get(Ljdk/internal/module/ModulePath;Ljdk/internal/jmod/JmodFile;)Ljava/util/function/Supplier;
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;
jdk/internal/module/ModulePath.lambda$4(Ljdk/internal/jmod/JmodFile;)Ljava/util/Set; (7)
()Ljava/util/Set;
invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
astore 5
start local 5 5: aload 8
ifnull 11
aload 8
invokevirtual java.io.InputStream.close:()V
goto 11
end local 5 StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.lang.Throwable java.lang.Throwable jdk.internal.jmod.JmodFile top java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
6: astore 6
aload 8
ifnull 7
aload 8
invokevirtual java.io.InputStream.close:()V
end local 8 StackMap locals:
StackMap stack:
7: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 7
aload 6
ifnonnull 9
aload 7
astore 6
goto 10
StackMap locals:
StackMap stack:
9: aload 6
aload 7
if_acmpeq 10
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
10: aload 6
athrow
start local 5 11: StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.lang.Throwable java.lang.Throwable jdk.internal.jmod.JmodFile jdk.internal.module.ModuleInfo$Attributes
StackMap stack:
aload 5
aload 1
invokestatic jdk.internal.module.ModuleReferences.newJModModule:(Ljdk/internal/module/ModuleInfo$Attributes;Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
12: aload 4
ifnull 13
aload 4
invokevirtual jdk.internal.jmod.JmodFile.close:()V
13: StackMap locals:
StackMap stack: java.lang.module.ModuleReference
areturn
end local 5 StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.lang.Throwable java.lang.Throwable jdk.internal.jmod.JmodFile
StackMap stack: java.lang.Throwable
14: astore 2
15: aload 4
ifnull 16
aload 4
invokevirtual jdk.internal.jmod.JmodFile.close:()V
end local 4 StackMap locals:
StackMap stack:
16: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 3
aload 2
ifnonnull 18
aload 3
astore 2
goto 19
StackMap locals:
StackMap stack:
18: aload 2
aload 3
if_acmpeq 19
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
19: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/internal/module/ModulePath;
0 20 1 file Ljava/nio/file/Path;
2 16 4 jf Ljdk/internal/jmod/JmodFile;
5 6 5 attrs Ljdk/internal/module/ModuleInfo$Attributes;
11 14 5 attrs Ljdk/internal/module/ModuleInfo$Attributes;
4 7 8 in Ljava/io/InputStream;
Exception table:
from to target type
4 5 6 any
3 8 8 any
2 12 14 any
1 13 17 any
14 17 17 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
private java.util.Optional<java.lang.String> toServiceName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Optional;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.module.ModulePath.$assertionsDisabled:Z
ifne 1
aload 1
ldc "META-INF/services/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
ldc "/"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
iconst_1
iadd
istore 2
start local 2 2: iload 2
aload 1
invokevirtual java.lang.String.length:()I
if_icmpge 8
3: aload 1
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 4: aload 3
ldc "META-INF/services/"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
5: aload 1
iload 2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
start local 4 6: aload 4
invokestatic jdk.internal.module.Checks.isClassName:(Ljava/lang/String;)Z
ifeq 8
7: aload 4
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 4 end local 3 8: StackMap locals: int
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljdk/internal/module/ModulePath;
0 9 1 cf Ljava/lang/String;
2 9 2 index I
4 8 3 prefix Ljava/lang/String;
6 8 4 sn Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/String;>;
MethodParameters:
Name Flags
cf
private java.lang.String nextLine(java.io.BufferedReader);
descriptor: (Ljava/io/BufferedReader;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
astore 2
start local 2 1: aload 2
ifnull 6
2: aload 2
bipush 35
invokevirtual java.lang.String.indexOf:(I)I
istore 3
start local 3 3: iload 3
iflt 5
4: aload 2
iconst_0
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 2
5: StackMap locals: java.lang.String int
StackMap stack:
aload 2
invokevirtual java.lang.String.trim:()Ljava/lang/String;
astore 2
end local 3 6: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/module/ModulePath;
0 7 1 reader Ljava/io/BufferedReader;
1 7 2 ln Ljava/lang/String;
3 6 3 ci I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
reader
private java.lang.module.ModuleDescriptor deriveModuleDescriptor(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=29, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.jar.JarFile.getManifest:()Ljava/util/jar/Manifest;
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aconst_null
astore 4
start local 4 3: aload 2
ifnull 7
4: aload 2
invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
astore 3
5: aload 3
ifnull 7
6: aload 3
getstatic jdk.internal.module.ModulePath.AUTOMATIC_MODULE_NAME:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 4
7: StackMap locals: java.util.jar.Manifest java.util.jar.Attributes java.lang.String
StackMap stack:
aload 1
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
astore 5
start local 5 8: aload 5
getstatic java.io.File.separator:Ljava/lang/String;
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 6
start local 6 9: iload 6
iconst_m1
if_icmpeq 11
10: aload 5
iload 6
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 5
11: StackMap locals: java.lang.String int
StackMap stack:
aload 5
iconst_0
aload 5
invokevirtual java.lang.String.length:()I
iconst_4
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 7
start local 7 12: aconst_null
astore 8
start local 8 13: getstatic jdk.internal.module.ModulePath$Patterns.DASH_VERSION:Ljava/util/regex/Pattern;
aload 7
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
astore 9
start local 9 14: aload 9
invokevirtual java.util.regex.Matcher.find:()Z
ifeq 22
15: aload 9
invokevirtual java.util.regex.Matcher.start:()I
istore 10
start local 10 16: aload 7
iload 10
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 11
start local 11 17: aload 11
invokestatic java.lang.module.ModuleDescriptor$Version.parse:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Version;
pop
18: aload 11
astore 8
end local 11 19: goto 21
StackMap locals: jdk.internal.module.ModulePath java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String int java.lang.String java.lang.String java.util.regex.Matcher int
StackMap stack: java.lang.IllegalArgumentException
20: pop
21: StackMap locals:
StackMap stack:
aload 7
iconst_0
iload 10
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 7
end local 10 22: StackMap locals:
StackMap stack:
aload 4
ifnull 27
23: aload 4
invokestatic java.lang.module.ModuleDescriptor.newAutomaticModule:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
astore 10
start local 10 24: goto 28
end local 10 StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
25: astore 11
start local 11 26: new java.lang.module.FindException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
getstatic jdk.internal.module.ModulePath.AUTOMATIC_MODULE_NAME:Ljava/util/jar/Attributes$Name;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 11
invokevirtual java.lang.IllegalArgumentException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.module.FindException.<init>:(Ljava/lang/String;)V
athrow
end local 11 27: StackMap locals:
StackMap stack:
aload 7
invokestatic jdk.internal.module.ModulePath.cleanModuleName:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.module.ModuleDescriptor.newAutomaticModule:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
astore 10
start local 10 28: StackMap locals: java.lang.module.ModuleDescriptor$Builder
StackMap stack:
aload 8
ifnull 30
29: aload 10
aload 8
invokevirtual java.lang.module.ModuleDescriptor$Builder.version:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
pop
30: StackMap locals:
StackMap stack:
aload 1
invokestatic jdk.internal.util.jar.VersionedStream.stream:(Ljava/util/jar/JarFile;)Ljava/util/stream/Stream;
31: 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
jdk/internal/module/ModulePath.lambda$5(Ljava/util/jar/JarEntry;)Z (6)
(Ljava/util/jar/JarEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
32: 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/jar/JarEntry;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
33: 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
jdk/internal/module/ModulePath.lambda$7(Ljava/lang/String;)Z (6)
(Ljava/lang/String;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
34: 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
jdk/internal/module/ModulePath.lambda$8(Ljava/lang/String;)Z (6)
(Ljava/lang/String;)Z
35: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
36: invokestatic java.util.stream.Collectors.partitioningBy:(Ljava/util/function/Predicate;Ljava/util/stream/Collector;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Map
37: astore 11
start local 11 38: aload 11
getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 12
start local 12 39: aload 11
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 13
start local 13 40: aload 12
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
41: aload 0
invokedynamic apply(Ljdk/internal/module/ModulePath;)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;
jdk/internal/module/ModulePath.toPackageName(Ljava/lang/String;)Ljava/util/Optional; (7)
(Ljava/lang/String;)Ljava/util/Optional;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
42: 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/Optional.stream()Ljava/util/stream/Stream; (5)
(Ljava/util/Optional;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
43: invokeinterface java.util.stream.Stream.distinct:()Ljava/util/stream/Stream;
44: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
45: astore 14
start local 14 46: aload 10
aload 14
invokevirtual java.lang.module.ModuleDescriptor$Builder.packages:(Ljava/util/Set;)Ljava/lang/module/ModuleDescriptor$Builder;
pop
47: aload 13
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
48: aload 0
invokedynamic apply(Ljdk/internal/module/ModulePath;)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;
jdk/internal/module/ModulePath.toServiceName(Ljava/lang/String;)Ljava/util/Optional; (7)
(Ljava/lang/String;)Ljava/util/Optional;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
49: 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/Optional.stream()Ljava/util/stream/Stream; (5)
(Ljava/util/Optional;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
50: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
51: astore 16
start local 16 52: aload 16
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 19
goto 77
StackMap locals: jdk.internal.module.ModulePath java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String int java.lang.String java.lang.String java.util.regex.Matcher java.lang.module.ModuleDescriptor$Builder java.util.Map java.util.Set java.util.Set java.util.Set top java.util.Set top top java.util.Iterator
StackMap stack:
53: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 18
start local 18 54: aload 1
new java.lang.StringBuilder
dup
ldc "META-INF/services/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 18
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
astore 20
start local 20 55: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 21
start local 21 56: aconst_null
astore 22
aconst_null
astore 23
57: aload 1
aload 20
invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
astore 24
start local 24 58: new java.io.BufferedReader
dup
new java.io.InputStreamReader
dup
aload 24
ldc "UTF-8"
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
59: astore 25
start local 25 60: goto 67
start local 26 61: StackMap locals: jdk.internal.module.ModulePath java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String int java.lang.String java.lang.String java.util.regex.Matcher java.lang.module.ModuleDescriptor$Builder java.util.Map java.util.Set java.util.Set java.util.Set top java.util.Set top java.lang.String java.util.Iterator java.util.jar.JarEntry java.util.List java.lang.Throwable java.lang.Throwable java.io.InputStream java.io.BufferedReader java.lang.String
StackMap stack:
aload 26
invokevirtual java.lang.String.length:()I
ifle 67
62: aload 26
invokestatic jdk.internal.module.ModulePath.packageName:(Ljava/lang/String;)Ljava/lang/String;
astore 27
start local 27 63: aload 14
aload 27
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 66
64: new java.lang.StringBuilder
dup
ldc "Provider class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 26
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " not in module"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 28
start local 28 65: new java.lang.module.InvalidModuleDescriptorException
dup
aload 28
invokespecial java.lang.module.InvalidModuleDescriptorException.<init>:(Ljava/lang/String;)V
athrow
end local 28 66: StackMap locals: java.lang.String
StackMap stack:
aload 21
aload 26
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 27 end local 26 67: StackMap locals:
StackMap stack:
aload 0
aload 25
invokevirtual jdk.internal.module.ModulePath.nextLine:(Ljava/io/BufferedReader;)Ljava/lang/String;
dup
astore 26
start local 26 68: ifnonnull 61
end local 26 end local 25 69: aload 24
ifnull 75
aload 24
invokevirtual java.io.InputStream.close:()V
goto 75
StackMap locals: jdk.internal.module.ModulePath java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String int java.lang.String java.lang.String java.util.regex.Matcher java.lang.module.ModuleDescriptor$Builder java.util.Map java.util.Set java.util.Set java.util.Set top java.util.Set top java.lang.String java.util.Iterator java.util.jar.JarEntry java.util.List java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
70: astore 22
aload 24
ifnull 71
aload 24
invokevirtual java.io.InputStream.close:()V
end local 24 StackMap locals:
StackMap stack:
71: aload 22
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
72: astore 23
aload 22
ifnonnull 73
aload 23
astore 22
goto 74
StackMap locals:
StackMap stack:
73: aload 22
aload 23
if_acmpeq 74
aload 22
aload 23
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
74: aload 22
athrow
75: StackMap locals:
StackMap stack:
aload 21
invokeinterface java.util.List.isEmpty:()Z
ifne 77
76: aload 10
aload 18
aload 21
invokevirtual java.lang.module.ModuleDescriptor$Builder.provides:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/module/ModuleDescriptor$Builder;
pop
end local 21 end local 20 end local 18 77: StackMap locals: jdk.internal.module.ModulePath java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String int java.lang.String java.lang.String java.util.regex.Matcher java.lang.module.ModuleDescriptor$Builder java.util.Map java.util.Set java.util.Set java.util.Set top java.util.Set top top java.util.Iterator
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 53
78: aload 3
ifnull 86
79: aload 3
getstatic java.util.jar.Attributes$Name.MAIN_CLASS:Ljava/util/jar/Attributes$Name;
invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
astore 18
start local 18 80: aload 18
ifnull 86
81: aload 18
ldc "/"
ldc "."
invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
astore 18
82: aload 18
invokestatic jdk.internal.module.Checks.isClassName:(Ljava/lang/String;)Z
ifeq 86
83: aload 18
invokestatic jdk.internal.module.ModulePath.packageName:(Ljava/lang/String;)Ljava/lang/String;
astore 19
start local 19 84: aload 14
aload 19
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 86
85: aload 10
aload 18
invokevirtual java.lang.module.ModuleDescriptor$Builder.mainClass:(Ljava/lang/String;)Ljava/lang/module/ModuleDescriptor$Builder;
pop
end local 19 end local 18 86: StackMap locals: jdk.internal.module.ModulePath java.util.jar.JarFile java.util.jar.Manifest java.util.jar.Attributes java.lang.String java.lang.String int java.lang.String java.lang.String java.util.regex.Matcher java.lang.module.ModuleDescriptor$Builder java.util.Map java.util.Set java.util.Set java.util.Set top java.util.Set
StackMap stack:
aload 10
invokevirtual java.lang.module.ModuleDescriptor$Builder.build:()Ljava/lang/module/ModuleDescriptor;
areturn
end local 16 end local 14 end local 13 end local 12 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 87 0 this Ljdk/internal/module/ModulePath;
0 87 1 jf Ljava/util/jar/JarFile;
1 87 2 man Ljava/util/jar/Manifest;
2 87 3 attrs Ljava/util/jar/Attributes;
3 87 4 moduleName Ljava/lang/String;
8 87 5 fn Ljava/lang/String;
9 87 6 i I
12 87 7 name Ljava/lang/String;
13 87 8 vs Ljava/lang/String;
14 87 9 matcher Ljava/util/regex/Matcher;
16 22 10 start I
17 19 11 tail Ljava/lang/String;
24 25 10 builder Ljava/lang/module/ModuleDescriptor$Builder;
28 87 10 builder Ljava/lang/module/ModuleDescriptor$Builder;
26 27 11 e Ljava/lang/IllegalArgumentException;
38 87 11 map Ljava/util/Map<Ljava/lang/Boolean;Ljava/util/Set<Ljava/lang/String;>;>;
39 87 12 classFiles Ljava/util/Set<Ljava/lang/String;>;
40 87 13 configFiles Ljava/util/Set<Ljava/lang/String;>;
46 87 14 packages Ljava/util/Set<Ljava/lang/String;>;
52 87 16 serviceNames Ljava/util/Set<Ljava/lang/String;>;
54 77 18 sn Ljava/lang/String;
55 77 20 entry Ljava/util/jar/JarEntry;
56 77 21 providerClasses Ljava/util/List<Ljava/lang/String;>;
58 71 24 in Ljava/io/InputStream;
60 69 25 reader Ljava/io/BufferedReader;
61 67 26 cn Ljava/lang/String;
68 69 26 cn Ljava/lang/String;
63 67 27 pn Ljava/lang/String;
65 66 28 msg Ljava/lang/String;
80 86 18 mainClass Ljava/lang/String;
84 86 19 pn Ljava/lang/String;
Exception table:
from to target type
16 19 20 Class java.lang.IllegalArgumentException
23 24 25 Class java.lang.IllegalArgumentException
58 69 70 any
57 72 72 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
jf
private static java.lang.String cleanModuleName(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: getstatic jdk.internal.module.ModulePath$Patterns.NON_ALPHANUM:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc "."
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
astore 0
1: getstatic jdk.internal.module.ModulePath$Patterns.REPEATING_DOTS:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc "."
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
astore 0
2: aload 0
invokevirtual java.lang.String.length:()I
ifle 4
aload 0
iconst_0
invokevirtual java.lang.String.charAt:(I)C
bipush 46
if_icmpne 4
3: getstatic jdk.internal.module.ModulePath$Patterns.LEADING_DOTS:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc ""
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
astore 0
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.String.length:()I
istore 1
start local 1 5: iload 1
ifle 7
aload 0
iload 1
iconst_1
isub
invokevirtual java.lang.String.charAt:(I)C
bipush 46
if_icmpne 7
6: getstatic jdk.internal.module.ModulePath$Patterns.TRAILING_DOTS:Ljava/util/regex/Pattern;
aload 0
invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
ldc ""
invokevirtual java.util.regex.Matcher.replaceAll:(Ljava/lang/String;)Ljava/lang/String;
astore 0
7: StackMap locals: int
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 mn Ljava/lang/String;
5 8 1 len I
MethodParameters:
Name Flags
mn
private java.util.Set<java.lang.String> jarPackages(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic jdk.internal.util.jar.VersionedStream.stream:(Ljava/util/jar/JarFile;)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
jdk/internal/module/ModulePath.lambda$13(Ljava/util/jar/JarEntry;)Z (6)
(Ljava/util/jar/JarEntry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
2: 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/jar/JarEntry;)Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
3: aload 0
invokedynamic apply(Ljdk/internal/module/ModulePath;)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;
jdk/internal/module/ModulePath.toPackageName(Ljava/lang/String;)Ljava/util/Optional; (7)
(Ljava/lang/String;)Ljava/util/Optional;
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;
java/util/Optional.stream()Ljava/util/stream/Stream; (5)
(Ljava/util/Optional;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
5: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
6: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/internal/module/ModulePath;
0 7 1 jf Ljava/util/jar/JarFile;
Signature: (Ljava/util/jar/JarFile;)Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
jf
private java.lang.module.ModuleReference readJar(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: new java.util.jar.JarFile
dup
aload 1
invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
2: iconst_1
3: iconst_1
4: aload 0
getfield jdk.internal.module.ModulePath.releaseVersion:Ljava/lang/Runtime$Version;
5: invokespecial java.util.jar.JarFile.<init>:(Ljava/io/File;ZILjava/lang/Runtime$Version;)V
astore 4
start local 4 6: aload 4
ldc "module-info.class"
invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
astore 6
start local 6 7: aload 6
ifnonnull 15
8: aload 0
aload 4
invokevirtual jdk.internal.module.ModulePath.deriveModuleDescriptor:(Ljava/util/jar/JarFile;)Ljava/lang/module/ModuleDescriptor;
astore 7
start local 7 9: new jdk.internal.module.ModuleInfo$Attributes
dup
aload 7
aconst_null
aconst_null
aconst_null
invokespecial jdk.internal.module.ModuleInfo$Attributes.<init>:(Ljava/lang/module/ModuleDescriptor;Ljdk/internal/module/ModuleTarget;Ljdk/internal/module/ModuleHashes;Ljdk/internal/module/ModuleResolution;)V
astore 5
end local 7 start local 5 10: goto 18
end local 5 StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.lang.Throwable java.lang.Throwable java.util.jar.JarFile top java.util.jar.JarEntry
StackMap stack: java.lang.RuntimeException
11: astore 7
start local 7 12: new java.lang.module.FindException
dup
new java.lang.StringBuilder
dup
ldc "Unable to derive module descriptor for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: aload 4
invokevirtual java.util.jar.JarFile.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 7
14: invokespecial java.lang.module.FindException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 7 15: StackMap locals:
StackMap stack:
aload 4
aload 6
invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
16: aload 0
aload 4
invokedynamic get(Ljdk/internal/module/ModulePath;Ljava/util/jar/JarFile;)Ljava/util/function/Supplier;
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;
jdk/internal/module/ModulePath.lambda$17(Ljava/util/jar/JarFile;)Ljava/util/Set; (7)
()Ljava/util/Set;
17: invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
astore 5
start local 5 18: StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.lang.Throwable java.lang.Throwable java.util.jar.JarFile jdk.internal.module.ModuleInfo$Attributes java.util.jar.JarEntry
StackMap stack:
aload 5
aload 0
getfield jdk.internal.module.ModulePath.patcher:Ljdk/internal/module/ModulePatcher;
aload 1
invokestatic jdk.internal.module.ModuleReferences.newJarModule:(Ljdk/internal/module/ModuleInfo$Attributes;Ljdk/internal/module/ModulePatcher;Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
19: aload 4
ifnull 20
aload 4
invokevirtual java.util.jar.JarFile.close:()V
20: StackMap locals:
StackMap stack: java.lang.module.ModuleReference
areturn
end local 6 end local 5 StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.lang.Throwable java.lang.Throwable java.util.jar.JarFile
StackMap stack: java.lang.Throwable
21: astore 2
22: aload 4
ifnull 23
aload 4
invokevirtual java.util.jar.JarFile.close:()V
end local 4 StackMap locals:
StackMap stack:
23: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 3
aload 2
ifnonnull 25
aload 3
astore 2
goto 26
StackMap locals:
StackMap stack:
25: aload 2
aload 3
if_acmpeq 26
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
26: aload 2
athrow
StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path
StackMap stack: java.util.zip.ZipException
27: astore 2
start local 2 28: new java.lang.module.FindException
dup
new java.lang.StringBuilder
dup
ldc "Error reading "
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;
aload 2
invokespecial java.lang.module.FindException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljdk/internal/module/ModulePath;
0 29 1 file Ljava/nio/file/Path;
6 23 4 jf Ljava/util/jar/JarFile;
10 11 5 attrs Ljdk/internal/module/ModuleInfo$Attributes;
18 21 5 attrs Ljdk/internal/module/ModuleInfo$Attributes;
7 21 6 entry Ljava/util/jar/JarEntry;
9 10 7 md Ljava/lang/module/ModuleDescriptor;
12 15 7 e Ljava/lang/RuntimeException;
28 29 2 e Ljava/util/zip/ZipException;
Exception table:
from to target type
8 10 11 Class java.lang.RuntimeException
6 19 21 any
1 20 24 any
21 24 24 any
0 20 27 Class java.util.zip.ZipException
21 27 27 Class java.util.zip.ZipException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
file
private java.util.Set<java.lang.String> explodedPackages(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc 2147483647
1: aload 0
invokedynamic test(Ljdk/internal/module/ModulePath;)Ljava/util/function/BiPredicate;
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;)Z
jdk/internal/module/ModulePath.lambda$18(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z (7)
(Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
iconst_0
anewarray java.nio.file.FileVisitOption
2: invokestatic java.nio.file.Files.find:(Ljava/nio/file/Path;ILjava/util/function/BiPredicate;[Ljava/nio/file/FileVisitOption;)Ljava/util/stream/Stream;
3: aload 1
invokedynamic apply(Ljava/nio/file/Path;)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;
jdk/internal/module/ModulePath.lambda$19(Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path; (6)
(Ljava/nio/file/Path;)Ljava/nio/file/Path;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
4: aload 0
invokedynamic apply(Ljdk/internal/module/ModulePath;)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;
jdk/internal/module/ModulePath.toPackageName(Ljava/nio/file/Path;)Ljava/util/Optional; (7)
(Ljava/nio/file/Path;)Ljava/util/Optional;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
5: 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/Optional.stream()Ljava/util/stream/Stream; (5)
(Ljava/util/Optional;)Ljava/util/stream/Stream;
invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
6: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
7: areturn
8: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 9: new java.io.UncheckedIOException
dup
aload 2
invokespecial java.io.UncheckedIOException.<init>:(Ljava/io/IOException;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/module/ModulePath;
0 10 1 dir Ljava/nio/file/Path;
9 10 2 x Ljava/io/IOException;
Exception table:
from to target type
0 7 8 Class java.io.IOException
Signature: (Ljava/nio/file/Path;)Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
dir
private java.lang.module.ModuleReference readExplodedModule(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ldc "module-info.class"
invokeinterface java.nio.file.Path.resolve:(Ljava/lang/String;)Ljava/nio/file/Path;
astore 2
start local 2 1: aconst_null
astore 4
aconst_null
astore 5
2: aload 2
iconst_0
anewarray java.nio.file.OpenOption
invokestatic java.nio.file.Files.newInputStream:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/io/InputStream;
astore 6
start local 6 3: new java.io.BufferedInputStream
dup
aload 6
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
4: aload 0
aload 1
invokedynamic get(Ljdk/internal/module/ModulePath;Ljava/nio/file/Path;)Ljava/util/function/Supplier;
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;
jdk/internal/module/ModulePath.lambda$22(Ljava/nio/file/Path;)Ljava/util/Set; (7)
()Ljava/util/Set;
5: invokestatic jdk.internal.module.ModuleInfo.read:(Ljava/io/InputStream;Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleInfo$Attributes;
astore 3
start local 3 6: aload 6
ifnull 14
aload 6
invokevirtual java.io.InputStream.close:()V
goto 14
end local 3 StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.nio.file.Path top java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack: java.lang.Throwable
7: astore 4
aload 6
ifnull 8
aload 6
invokevirtual java.io.InputStream.close:()V
end local 6 StackMap locals:
StackMap stack:
8: aload 4
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 5
aload 4
ifnonnull 10
aload 5
astore 4
goto 11
StackMap locals:
StackMap stack:
10: aload 4
aload 5
if_acmpeq 11
aload 4
aload 5
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
11: aload 4
athrow
StackMap locals: jdk.internal.module.ModulePath java.nio.file.Path java.nio.file.Path
StackMap stack: java.nio.file.NoSuchFileException
12: pop
13: aconst_null
areturn
start local 3 14: StackMap locals: jdk.internal.module.ModuleInfo$Attributes
StackMap stack:
aload 3
aload 0
getfield jdk.internal.module.ModulePath.patcher:Ljdk/internal/module/ModulePatcher;
aload 1
invokestatic jdk.internal.module.ModuleReferences.newExplodedModule:(Ljdk/internal/module/ModuleInfo$Attributes;Ljdk/internal/module/ModulePatcher;Ljava/nio/file/Path;)Ljava/lang/module/ModuleReference;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/internal/module/ModulePath;
0 15 1 dir Ljava/nio/file/Path;
1 15 2 mi Ljava/nio/file/Path;
6 7 3 attrs Ljdk/internal/module/ModuleInfo$Attributes;
14 15 3 attrs Ljdk/internal/module/ModuleInfo$Attributes;
3 8 6 in Ljava/io/InputStream;
Exception table:
from to target type
3 6 7 any
2 9 9 any
1 12 12 Class java.nio.file.NoSuchFileException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dir
private static java.lang.String packageName(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 46
invokevirtual java.lang.String.lastIndexOf:(I)I
istore 1
start local 1 1: iload 1
iconst_m1
if_icmpne 2
ldc ""
goto 3
StackMap locals: int
StackMap stack:
2: aload 0
iconst_0
iload 1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
StackMap locals:
StackMap stack: java.lang.String
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 cn Ljava/lang/String;
1 4 1 index I
MethodParameters:
Name Flags
cn
private java.util.Optional<java.lang.String> toPackageName(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Optional;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.module.ModulePath.$assertionsDisabled:Z
ifne 1
aload 1
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
ldc "/"
invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
istore 2
start local 2 2: iload 2
iconst_m1
if_icmpne 9
3: aload 1
ldc ".class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 8
aload 1
ldc "module-info.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
4: 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 " found in top-level directory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: ldc " (unnamed package not allowed in module)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 7: new java.lang.module.InvalidModuleDescriptorException
dup
aload 3
invokespecial java.lang.module.InvalidModuleDescriptorException.<init>:(Ljava/lang/String;)V
athrow
end local 3 8: StackMap locals: int
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
9: StackMap locals:
StackMap stack:
aload 1
iconst_0
iload 2
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
bipush 47
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 3
start local 3 10: aload 3
invokestatic jdk.internal.module.Checks.isPackageName:(Ljava/lang/String;)Z
ifeq 12
11: aload 3
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
12: StackMap locals: java.lang.String
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/internal/module/ModulePath;
0 13 1 name Ljava/lang/String;
2 13 2 index I
7 8 3 msg Ljava/lang/String;
10 13 3 pn Ljava/lang/String;
Signature: (Ljava/lang/String;)Ljava/util/Optional<Ljava/lang/String;>;
MethodParameters:
Name Flags
name
private java.util.Optional<java.lang.String> toPackageName(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/Optional;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.module.ModulePath.$assertionsDisabled:Z
ifne 1
aload 1
invokeinterface java.nio.file.Path.getRoot:()Ljava/nio/file/Path;
ifnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
astore 2
start local 2 2: aload 2
ifnonnull 10
3: aload 1
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
astore 3
start local 3 4: aload 3
ldc ".class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 9
aload 3
ldc "module-info.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 9
5: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " found in top-level directory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc " (unnamed package not allowed in module)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
start local 4 8: new java.lang.module.InvalidModuleDescriptorException
dup
aload 4
invokespecial java.lang.module.InvalidModuleDescriptorException.<init>:(Ljava/lang/String;)V
athrow
end local 4 9: StackMap locals: java.nio.file.Path java.lang.String
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
end local 3 10: StackMap locals:
StackMap stack:
aload 2
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
getstatic java.io.File.separatorChar:C
bipush 46
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
astore 3
start local 3 11: aload 3
invokestatic jdk.internal.module.Checks.isPackageName:(Ljava/lang/String;)Z
ifeq 13
12: aload 3
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
13: StackMap locals: java.lang.String
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/module/ModulePath;
0 14 1 file Ljava/nio/file/Path;
2 14 2 parent Ljava/nio/file/Path;
4 10 3 name Ljava/lang/String;
8 9 4 msg Ljava/lang/String;
11 14 3 pn Ljava/lang/String;
Signature: (Ljava/nio/file/Path;)Ljava/util/Optional<Ljava/lang/String;>;
MethodParameters:
Name Flags
file
private boolean isHidden(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.nio.file.Files.isHidden:(Ljava/nio/file/Path;)Z
1: ireturn
2: StackMap locals:
StackMap stack: java.io.IOException
pop
3: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/module/ModulePath;
0 4 1 file Ljava/nio/file/Path;
Exception table:
from to target type
0 1 2 Class java.io.IOException
MethodParameters:
Name Flags
file
private boolean isDefaultFileSystem(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.nio.file.Path.getFileSystem:()Ljava/nio/file/FileSystem;
invokevirtual java.nio.file.FileSystem.provider:()Ljava/nio/file/spi/FileSystemProvider;
1: invokevirtual java.nio.file.spi.FileSystemProvider.getScheme:()Ljava/lang/String;
ldc "file"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
2: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/module/ModulePath;
0 3 1 path Ljava/nio/file/Path;
MethodParameters:
Name Flags
path
private static boolean lambda$0(jdk.internal.jmod.JmodFile$Entry);
descriptor: (Ljdk/internal/jmod/JmodFile$Entry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual jdk.internal.jmod.JmodFile$Entry.section:()Ljdk/internal/jmod/JmodFile$Section;
getstatic jdk.internal.jmod.JmodFile$Section.CLASSES:Ljdk/internal/jmod/JmodFile$Section;
if_acmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 e Ljdk/internal/jmod/JmodFile$Entry;
private java.util.Set lambda$4(jdk.internal.jmod.JmodFile);
descriptor: (Ljdk/internal/jmod/JmodFile;)Ljava/util/Set;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.jmodPackages:(Ljdk/internal/jmod/JmodFile;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/module/ModulePath;
private static boolean lambda$5(java.util.jar.JarEntry);
descriptor: (Ljava/util/jar/JarEntry;)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.jar.JarEntry.isDirectory:()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/util/jar/JarEntry;
private static boolean lambda$7(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc ".class"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
aload 0
ldc "META-INF/services/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ixor
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Ljava/lang/String;
private static boolean lambda$8(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "META-INF/services/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Ljava/lang/String;
private static boolean lambda$13(java.util.jar.JarEntry);
descriptor: (Ljava/util/jar/JarEntry;)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.jar.JarEntry.isDirectory:()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/util/jar/JarEntry;
private java.util.Set lambda$17(java.util.jar.JarFile);
descriptor: (Ljava/util/jar/JarFile;)Ljava/util/Set;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.jarPackages:(Ljava/util/jar/JarFile;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/module/ModulePath;
private boolean lambda$18(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/attribute/BasicFileAttributes;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface java.nio.file.attribute.BasicFileAttributes.isRegularFile:()Z
ifeq 1
aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.isHidden:(Ljava/nio/file/Path;)Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/module/ModulePath;
0 3 1 path Ljava/nio/file/Path;
0 3 2 attrs Ljava/nio/file/attribute/BasicFileAttributes;
private static java.nio.file.Path lambda$19(java.nio.file.Path, java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;Ljava/nio/file/Path;)Ljava/nio/file/Path;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.nio.file.Path.relativize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
areturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 path Ljava/nio/file/Path;
private java.util.Set lambda$22(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljava/util/Set;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
invokevirtual jdk.internal.module.ModulePath.explodedPackages:(Ljava/nio/file/Path;)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/module/ModulePath;
}
SourceFile: "ModulePath.java"
NestMembers:
jdk.internal.module.ModulePath$Patterns
InnerClasses:
public final Version = java.lang.Runtime$Version of java.lang.Runtime
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public final Builder = java.lang.module.ModuleDescriptor$Builder of java.lang.module.ModuleDescriptor
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 Entry = jdk.internal.jmod.JmodFile$Entry of jdk.internal.jmod.JmodFile
public final Section = jdk.internal.jmod.JmodFile$Section of jdk.internal.jmod.JmodFile
public final Attributes = jdk.internal.module.ModuleInfo$Attributes of jdk.internal.module.ModuleInfo
private Patterns = jdk.internal.module.ModulePath$Patterns of jdk.internal.module.ModulePath