class jdk.internal.loader.URLClassPath$3 implements java.security.PrivilegedExceptionAction<jdk.internal.loader.URLClassPath$Loader>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.loader.URLClassPath$3
super_class: java.lang.Object
{
final jdk.internal.loader.URLClassPath this$0;
descriptor: Ljdk/internal/loader/URLClassPath;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final java.net.URL val$url;
descriptor: Ljava/net/URL;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(jdk.internal.loader.URLClassPath, java.net.URL);
descriptor: (Ljdk/internal/loader/URLClassPath;Ljava/net/URL;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 0: aload 0
aload 1
putfield jdk.internal.loader.URLClassPath$3.this$0:Ljdk/internal/loader/URLClassPath;
aload 0
aload 2
putfield jdk.internal.loader.URLClassPath$3.val$url:Ljava/net/URL;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/loader/URLClassPath$3;
MethodParameters:
Name Flags
this$0 final
val$url final
public jdk.internal.loader.URLClassPath$Loader run();
descriptor: ()Ljdk/internal/loader/URLClassPath$Loader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
getfield jdk.internal.loader.URLClassPath$3.val$url:Ljava/net/URL;
invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
astore 1
start local 1 1: aload 0
getfield jdk.internal.loader.URLClassPath$3.val$url:Ljava/net/URL;
invokevirtual java.net.URL.getFile:()Ljava/lang/String;
astore 2
start local 2 2: aload 2
ifnull 11
aload 2
ldc "/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 11
3: ldc "file"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 5
4: new jdk.internal.loader.URLClassPath$FileLoader
dup
aload 0
getfield jdk.internal.loader.URLClassPath$3.val$url:Ljava/net/URL;
invokespecial jdk.internal.loader.URLClassPath$FileLoader.<init>:(Ljava/net/URL;)V
areturn
5: StackMap locals: java.lang.String java.lang.String
StackMap stack:
ldc "jar"
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 10
6: aload 0
getfield jdk.internal.loader.URLClassPath$3.val$url:Ljava/net/URL;
invokestatic jdk.internal.loader.URLClassPath.isDefaultJarHandler:(Ljava/net/URL;)Z
ifeq 10
7: aload 2
ldc "!/"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifeq 10
8: new java.net.URL
dup
aload 2
iconst_0
aload 2
invokevirtual java.lang.String.length:()I
iconst_2
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 3
start local 3 9: new jdk.internal.loader.URLClassPath$JarLoader
dup
aload 3
aload 0
getfield jdk.internal.loader.URLClassPath$3.this$0:Ljdk/internal/loader/URLClassPath;
getfield jdk.internal.loader.URLClassPath.jarHandler:Ljava/net/URLStreamHandler;
aload 0
getfield jdk.internal.loader.URLClassPath$3.this$0:Ljdk/internal/loader/URLClassPath;
getfield jdk.internal.loader.URLClassPath.lmap:Ljava/util/HashMap;
aload 0
getfield jdk.internal.loader.URLClassPath$3.this$0:Ljdk/internal/loader/URLClassPath;
getfield jdk.internal.loader.URLClassPath.acc:Ljava/security/AccessControlContext;
invokespecial jdk.internal.loader.URLClassPath$JarLoader.<init>:(Ljava/net/URL;Ljava/net/URLStreamHandler;Ljava/util/HashMap;Ljava/security/AccessControlContext;)V
areturn
end local 3 10: StackMap locals:
StackMap stack:
new jdk.internal.loader.URLClassPath$Loader
dup
aload 0
getfield jdk.internal.loader.URLClassPath$3.val$url:Ljava/net/URL;
invokespecial jdk.internal.loader.URLClassPath$Loader.<init>:(Ljava/net/URL;)V
areturn
11: StackMap locals:
StackMap stack:
new jdk.internal.loader.URLClassPath$JarLoader
dup
aload 0
getfield jdk.internal.loader.URLClassPath$3.val$url:Ljava/net/URL;
aload 0
getfield jdk.internal.loader.URLClassPath$3.this$0:Ljdk/internal/loader/URLClassPath;
getfield jdk.internal.loader.URLClassPath.jarHandler:Ljava/net/URLStreamHandler;
aload 0
getfield jdk.internal.loader.URLClassPath$3.this$0:Ljdk/internal/loader/URLClassPath;
getfield jdk.internal.loader.URLClassPath.lmap:Ljava/util/HashMap;
aload 0
getfield jdk.internal.loader.URLClassPath$3.this$0:Ljdk/internal/loader/URLClassPath;
getfield jdk.internal.loader.URLClassPath.acc:Ljava/security/AccessControlContext;
invokespecial jdk.internal.loader.URLClassPath$JarLoader.<init>:(Ljava/net/URL;Ljava/net/URLStreamHandler;Ljava/util/HashMap;Ljava/security/AccessControlContext;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/internal/loader/URLClassPath$3;
1 12 1 protocol Ljava/lang/String;
2 12 2 file Ljava/lang/String;
9 10 3 nestedUrl Ljava/net/URL;
Exceptions:
throws java.io.IOException
public java.lang.Object run();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual jdk.internal.loader.URLClassPath$3.run:()Ljdk/internal/loader/URLClassPath$Loader;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Ljava/lang/Object;Ljava/security/PrivilegedExceptionAction<Ljdk/internal/loader/URLClassPath$Loader;>;
SourceFile: "URLClassPath.java"
EnclosingMethod: jdk.internal.loader.URLClassPath.getLoader:(Ljava/net/URL;)Ljdk/internal/loader/URLClassPath$Loader;
NestHost: jdk.internal.loader.URLClassPath
InnerClasses:
jdk.internal.loader.URLClassPath$3
private FileLoader = jdk.internal.loader.URLClassPath$FileLoader of jdk.internal.loader.URLClassPath
private JarLoader = jdk.internal.loader.URLClassPath$JarLoader of jdk.internal.loader.URLClassPath
private Loader = jdk.internal.loader.URLClassPath$Loader of jdk.internal.loader.URLClassPath