class jdk.internal.loader.URLClassPath$Loader implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.internal.loader.URLClassPath$Loader
super_class: java.lang.Object
{
private final java.net.URL base;
descriptor: Ljava/net/URL;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.jar.JarFile jarfile;
descriptor: Ljava/util/jar/JarFile;
flags: (0x0002) ACC_PRIVATE
void <init>(java.net.URL);
descriptor: (Ljava/net/URL;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.internal.loader.URLClassPath$Loader.base:Ljava/net/URL;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/loader/URLClassPath$Loader;
0 3 1 url Ljava/net/URL;
MethodParameters:
Name Flags
url
java.net.URL getBaseURL();
descriptor: ()Ljava/net/URL;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.loader.URLClassPath$Loader.base:Ljava/net/URL;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/loader/URLClassPath$Loader;
java.net.URL findResource(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/net/URL;
flags: (0x0000)
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.net.URL
dup
aload 0
getfield jdk.internal.loader.URLClassPath$Loader.base:Ljava/net/URL;
aload 1
iconst_0
invokestatic sun.net.www.ParseUtil.encodePath:(Ljava/lang/String;Z)Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
astore 3
start local 3 1: goto 4
end local 3 StackMap locals:
StackMap stack: java.net.MalformedURLException
2: pop
3: new java.lang.IllegalArgumentException
dup
ldc "name"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 3 4: StackMap locals: java.net.URL
StackMap stack:
iload 2
ifeq 6
5: aload 3
invokestatic jdk.internal.loader.URLClassPath.check:(Ljava/net/URL;)V
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 4
start local 4 7: aload 4
instanceof java.net.HttpURLConnection
ifeq 12
8: aload 4
checkcast java.net.HttpURLConnection
astore 5
start local 5 9: aload 5
ldc "HEAD"
invokevirtual java.net.HttpURLConnection.setRequestMethod:(Ljava/lang/String;)V
10: aload 5
invokevirtual java.net.HttpURLConnection.getResponseCode:()I
sipush 400
if_icmplt 15
11: aconst_null
areturn
end local 5 12: StackMap locals: java.net.URLConnection
StackMap stack:
aload 4
iconst_0
invokevirtual java.net.URLConnection.setUseCaches:(Z)V
13: aload 4
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
astore 5
start local 5 14: aload 5
invokevirtual java.io.InputStream.close:()V
end local 5 15: StackMap locals:
StackMap stack:
aload 3
16: areturn
end local 4 17: StackMap locals: jdk.internal.loader.URLClassPath$Loader java.lang.String int java.net.URL
StackMap stack: java.lang.Exception
pop
18: aconst_null
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Ljdk/internal/loader/URLClassPath$Loader;
0 19 1 name Ljava/lang/String;
0 19 2 check Z
1 2 3 url Ljava/net/URL;
4 19 3 url Ljava/net/URL;
7 17 4 uc Ljava/net/URLConnection;
9 12 5 hconn Ljava/net/HttpURLConnection;
14 15 5 is Ljava/io/InputStream;
Exception table:
from to target type
0 1 2 Class java.net.MalformedURLException
4 11 17 Class java.lang.Exception
12 16 17 Class java.lang.Exception
MethodParameters:
Name Flags
name final
check
jdk.internal.loader.Resource getResource(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljdk/internal/loader/Resource;
flags: (0x0000)
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: new java.net.URL
dup
aload 0
getfield jdk.internal.loader.URLClassPath$Loader.base:Ljava/net/URL;
aload 1
iconst_0
invokestatic sun.net.www.ParseUtil.encodePath:(Ljava/lang/String;Z)Ljava/lang/String;
invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
astore 3
start local 3 1: goto 4
end local 3 StackMap locals:
StackMap stack: java.net.MalformedURLException
2: pop
3: new java.lang.IllegalArgumentException
dup
ldc "name"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 3 4: StackMap locals: java.net.URL
StackMap stack:
iload 2
ifeq 6
5: aload 3
invokestatic jdk.internal.loader.URLClassPath.check:(Ljava/net/URL;)V
6: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
astore 4
start local 4 7: aload 4
invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
pop
8: aload 4
instanceof java.net.JarURLConnection
ifeq 14
9: aload 4
checkcast java.net.JarURLConnection
astore 5
start local 5 10: aload 0
aload 5
invokevirtual java.net.JarURLConnection.getJarFile:()Ljava/util/jar/JarFile;
invokestatic jdk.internal.loader.URLClassPath$JarLoader.checkJar:(Ljava/util/jar/JarFile;)Ljava/util/jar/JarFile;
putfield jdk.internal.loader.URLClassPath$Loader.jarfile:Ljava/util/jar/JarFile;
end local 5 11: goto 14
end local 4 StackMap locals:
StackMap stack: java.lang.Exception
12: pop
13: aconst_null
areturn
start local 4 14: StackMap locals: java.net.URLConnection
StackMap stack:
new jdk.internal.loader.URLClassPath$Loader$1
dup
aload 0
aload 1
aload 3
aload 4
invokespecial jdk.internal.loader.URLClassPath$Loader$1.<init>:(Ljdk/internal/loader/URLClassPath$Loader;Ljava/lang/String;Ljava/net/URL;Ljava/net/URLConnection;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljdk/internal/loader/URLClassPath$Loader;
0 15 1 name Ljava/lang/String;
0 15 2 check Z
1 2 3 url Ljava/net/URL;
4 15 3 url Ljava/net/URL;
7 12 4 uc Ljava/net/URLConnection;
14 15 4 uc Ljava/net/URLConnection;
10 11 5 juc Ljava/net/JarURLConnection;
Exception table:
from to target type
0 1 2 Class java.net.MalformedURLException
4 11 12 Class java.lang.Exception
MethodParameters:
Name Flags
name final
check
jdk.internal.loader.Resource getResource(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/internal/loader/Resource;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual jdk.internal.loader.URLClassPath$Loader.getResource:(Ljava/lang/String;Z)Ljdk/internal/loader/Resource;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/loader/URLClassPath$Loader;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name final
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.loader.URLClassPath$Loader.jarfile:Ljava/util/jar/JarFile;
ifnull 2
1: aload 0
getfield jdk.internal.loader.URLClassPath$Loader.jarfile:Ljava/util/jar/JarFile;
invokevirtual java.util.jar.JarFile.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/loader/URLClassPath$Loader;
Exceptions:
throws java.io.IOException
java.net.URL[] getClassPath();
descriptor: ()[Ljava/net/URL;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/loader/URLClassPath$Loader;
Exceptions:
throws java.io.IOException
}
SourceFile: "URLClassPath.java"
NestHost: jdk.internal.loader.URLClassPath
InnerClasses:
private JarLoader = jdk.internal.loader.URLClassPath$JarLoader of jdk.internal.loader.URLClassPath
private Loader = jdk.internal.loader.URLClassPath$Loader of jdk.internal.loader.URLClassPath
jdk.internal.loader.URLClassPath$Loader$1