class jdk.internal.loader.URLClassPath$FileLoader extends jdk.internal.loader.URLClassPath$Loader
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.loader.URLClassPath$FileLoader
  super_class: jdk.internal.loader.URLClassPath$Loader
{
  private java.io.File dir;
    descriptor: Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.net.URL);
    descriptor: (Ljava/net/URL;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // jdk.internal.loader.URLClassPath$FileLoader this
        start local 1 // java.net.URL url
         0: .line 1194
            aload 0 /* this */
            aload 1 /* url */
            invokespecial jdk.internal.loader.URLClassPath$Loader.<init>:(Ljava/net/URL;)V
         1: .line 1195
            ldc "file"
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 1196
            new java.lang.IllegalArgumentException
            dup
            ldc "url"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1198
      StackMap locals: jdk.internal.loader.URLClassPath$FileLoader java.net.URL
      StackMap stack:
            aload 1 /* url */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         4: .line 1199
            aload 2 /* path */
            invokestatic sun.net.www.ParseUtil.decode:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* path */
         5: .line 1200
            aload 0 /* this */
            new java.io.File
            dup
            aload 2 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
            putfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
         6: .line 1201
            return
        end local 2 // java.lang.String path
        end local 1 // java.net.URL url
        end local 0 // jdk.internal.loader.URLClassPath$FileLoader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/internal/loader/URLClassPath$FileLoader;
            0    7     1   url  Ljava/net/URL;
            4    7     2  path  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      url   

  java.net.URL findResource(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/net/URL;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // jdk.internal.loader.URLClassPath$FileLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean check
         0: .line 1208
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* check */
            invokevirtual jdk.internal.loader.URLClassPath$FileLoader.getResource:(Ljava/lang/String;Z)Ljdk/internal/loader/Resource;
            astore 3 /* rsc */
        start local 3 // jdk.internal.loader.Resource rsc
         1: .line 1209
            aload 3 /* rsc */
            ifnull 3
         2: .line 1210
            aload 3 /* rsc */
            invokevirtual jdk.internal.loader.Resource.getURL:()Ljava/net/URL;
            areturn
         3: .line 1212
      StackMap locals: jdk.internal.loader.Resource
      StackMap stack:
            aconst_null
            areturn
        end local 3 // jdk.internal.loader.Resource rsc
        end local 2 // boolean check
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.loader.URLClassPath$FileLoader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljdk/internal/loader/URLClassPath$FileLoader;
            0    4     1   name  Ljava/lang/String;
            0    4     2  check  Z
            1    4     3    rsc  Ljdk/internal/loader/Resource;
    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 // jdk.internal.loader.URLClassPath$FileLoader this
        start local 1 // java.lang.String name
        start local 2 // boolean check
         0: .line 1219
            new java.net.URL
            dup
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$FileLoader.getBaseURL:()Ljava/net/URL;
            ldc "."
            invokespecial java.net.URL.<init>:(Ljava/net/URL;Ljava/lang/String;)V
            astore 4 /* normalizedBase */
        start local 4 // java.net.URL normalizedBase
         1: .line 1220
            new java.net.URL
            dup
            aload 0 /* this */
            invokevirtual jdk.internal.loader.URLClassPath$FileLoader.getBaseURL:()Ljava/net/URL;
            aload 1 /* name */
            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 /* url */
        start local 3 // java.net.URL url
         2: .line 1222
            aload 3 /* url */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            aload 4 /* normalizedBase */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 1224
            aconst_null
            areturn
         4: .line 1227
      StackMap locals: java.net.URL java.net.URL
      StackMap stack:
            iload 2 /* check */
            ifeq 6
         5: .line 1228
            aload 3 /* url */
            invokestatic jdk.internal.loader.URLClassPath.check:(Ljava/net/URL;)V
         6: .line 1231
      StackMap locals:
      StackMap stack:
            aload 1 /* name */
            ldc ".."
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            iconst_m1
            if_icmpeq 12
         7: .line 1232
            new java.io.File
            dup
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
            aload 1 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
         8: .line 1233
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
         9: .line 1232
            astore 5 /* file */
        start local 5 // java.io.File file
        10: .line 1234
            aload 5 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 13
        11: .line 1236
            aconst_null
            areturn
        end local 5 // java.io.File file
        12: .line 1239
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* this */
            getfield jdk.internal.loader.URLClassPath$FileLoader.dir:Ljava/io/File;
            aload 1 /* name */
            bipush 47
            getstatic java.io.File.separatorChar:C
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 5 /* file */
        start local 5 // java.io.File file
        13: .line 1242
      StackMap locals: java.io.File
      StackMap stack:
            aload 5 /* file */
            invokevirtual java.io.File.exists:()Z
            ifeq 18
        14: .line 1243
            new jdk.internal.loader.URLClassPath$FileLoader$1
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 3 /* url */
            aload 5 /* file */
            invokespecial jdk.internal.loader.URLClassPath$FileLoader$1.<init>:(Ljdk/internal/loader/URLClassPath$FileLoader;Ljava/lang/String;Ljava/net/URL;Ljava/io/File;)V
        15: areturn
        end local 5 // java.io.File file
        end local 4 // java.net.URL normalizedBase
        end local 3 // java.net.URL url
        16: .line 1253
      StackMap locals: jdk.internal.loader.URLClassPath$FileLoader java.lang.String int
      StackMap stack: java.lang.Exception
            pop
        17: .line 1254
            aconst_null
            areturn
        start local 3 // java.net.URL url
        18: .line 1256
      StackMap locals: java.net.URL
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.net.URL url
        end local 2 // boolean check
        end local 1 // java.lang.String name
        end local 0 // jdk.internal.loader.URLClassPath$FileLoader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0            this  Ljdk/internal/loader/URLClassPath$FileLoader;
            0   19     1            name  Ljava/lang/String;
            0   19     2           check  Z
            2   16     3             url  Ljava/net/URL;
           18   19     3             url  Ljava/net/URL;
            1   16     4  normalizedBase  Ljava/net/URL;
           10   12     5            file  Ljava/io/File;
           13   16     5            file  Ljava/io/File;
      Exception table:
        from    to  target  type
           0     3      16  Class java.lang.Exception
           4    11      16  Class java.lang.Exception
          12    15      16  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      name   final
      check  
}
SourceFile: "URLClassPath.java"
NestHost: jdk.internal.loader.URLClassPath
InnerClasses:
  private FileLoader = jdk.internal.loader.URLClassPath$FileLoader of jdk.internal.loader.URLClassPath
  jdk.internal.loader.URLClassPath$FileLoader$1
  private Loader = jdk.internal.loader.URLClassPath$Loader of jdk.internal.loader.URLClassPath