public class org.jruby.util.URLResource implements org.jruby.util.FileResource, org.jruby.util.DummyResourceStat$FileResourceExt
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.util.URLResource
  super_class: java.lang.Object
{
  public static java.lang.String URI;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static java.lang.String CLASSLOADER;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static java.lang.String URI_CLASSLOADER;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private final java.lang.String uri;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String[] list;
    descriptor: [Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.net.URL url;
    descriptor: Ljava/net/URL;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String pathname;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.ClassLoader cl;
    descriptor: Ljava/lang/ClassLoader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 22
            ldc "uri:"
            putstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
         1: .line 23
            ldc "classloader:"
            putstatic org.jruby.util.URLResource.CLASSLOADER:Ljava/lang/String;
         2: .line 24
            new java.lang.StringBuilder
            dup
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.jruby.util.URLResource.CLASSLOADER:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic org.jruby.util.URLResource.URI_CLASSLOADER:Ljava/lang/String;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String, java.net.URL, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/net/URL;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.util.URLResource this
        start local 1 // java.lang.String uri
        start local 2 // java.net.URL url
        start local 3 // java.lang.String[] files
         0: .line 36
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* url */
            aconst_null
            aconst_null
            aload 3 /* files */
            invokespecial org.jruby.util.URLResource.<init>:(Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;)V
         1: .line 37
            return
        end local 3 // java.lang.String[] files
        end local 2 // java.net.URL url
        end local 1 // java.lang.String uri
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/jruby/util/URLResource;
            0    2     1    uri  Ljava/lang/String;
            0    2     2    url  Ljava/net/URL;
            0    2     3  files  [Ljava/lang/String;
    MethodParameters:
       Name  Flags
      uri    
      url    
      files  

  void <init>(java.lang.String, java.lang.ClassLoader, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.jruby.util.URLResource this
        start local 1 // java.lang.String uri
        start local 2 // java.lang.ClassLoader cl
        start local 3 // java.lang.String pathname
        start local 4 // java.lang.String[] files
         0: .line 40
            aload 0 /* this */
            aload 1 /* uri */
            aconst_null
            aload 2 /* cl */
            aload 3 /* pathname */
            aload 4 /* files */
            invokespecial org.jruby.util.URLResource.<init>:(Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;)V
         1: .line 41
            return
        end local 4 // java.lang.String[] files
        end local 3 // java.lang.String pathname
        end local 2 // java.lang.ClassLoader cl
        end local 1 // java.lang.String uri
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jruby/util/URLResource;
            0    2     1       uri  Ljava/lang/String;
            0    2     2        cl  Ljava/lang/ClassLoader;
            0    2     3  pathname  Ljava/lang/String;
            0    2     4     files  [Ljava/lang/String;
    MethodParameters:
          Name  Flags
      uri       
      cl        
      pathname  
      files     

  private void <init>(java.lang.String, java.net.URL, java.lang.ClassLoader, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.jruby.util.URLResource this
        start local 1 // java.lang.String uri
        start local 2 // java.net.URL url
        start local 3 // java.lang.ClassLoader cl
        start local 4 // java.lang.String pathname
        start local 5 // java.lang.String[] files
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            aload 1 /* uri */
            putfield org.jruby.util.URLResource.uri:Ljava/lang/String;
         2: .line 45
            aload 0 /* this */
            aload 5 /* files */
            putfield org.jruby.util.URLResource.list:[Ljava/lang/String;
         3: .line 46
            aload 0 /* this */
            aload 2 /* url */
            putfield org.jruby.util.URLResource.url:Ljava/net/URL;
         4: .line 47
            aload 0 /* this */
            aload 3 /* cl */
            putfield org.jruby.util.URLResource.cl:Ljava/lang/ClassLoader;
         5: .line 48
            aload 0 /* this */
            aload 4 /* pathname */
            putfield org.jruby.util.URLResource.pathname:Ljava/lang/String;
         6: .line 49
            return
        end local 5 // java.lang.String[] files
        end local 4 // java.lang.String pathname
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.net.URL url
        end local 1 // java.lang.String uri
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/jruby/util/URLResource;
            0    7     1       uri  Ljava/lang/String;
            0    7     2       url  Ljava/net/URL;
            0    7     3        cl  Ljava/lang/ClassLoader;
            0    7     4  pathname  Ljava/lang/String;
            0    7     5     files  [Ljava/lang/String;
    MethodParameters:
          Name  Flags
      uri       
      url       
      cl        
      pathname  
      files     

  public java.lang.String absolutePath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 53
            aload 0 /* this */
            getfield org.jruby.util.URLResource.uri:Ljava/lang/String;
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public java.lang.String canonicalPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 57
            aload 0 /* this */
            getfield org.jruby.util.URLResource.uri:Ljava/lang/String;
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public boolean exists();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 62
            aload 0 /* this */
            getfield org.jruby.util.URLResource.url:Ljava/net/URL;
            ifnonnull 1
            aload 0 /* this */
            getfield org.jruby.util.URLResource.pathname:Ljava/lang/String;
            ifnonnull 1
            aload 0 /* this */
            getfield org.jruby.util.URLResource.list:[Ljava/lang/String;
            ifnonnull 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/URLResource;

  public boolean isDirectory();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 67
            aload 0 /* this */
            getfield org.jruby.util.URLResource.list:[Ljava/lang/String;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jruby/util/URLResource;

  public boolean isFile();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 72
            aload 0 /* this */
            getfield org.jruby.util.URLResource.list:[Ljava/lang/String;
            ifnonnull 2
            aload 0 /* this */
            getfield org.jruby.util.URLResource.url:Ljava/net/URL;
            ifnonnull 1
            aload 0 /* this */
            getfield org.jruby.util.URLResource.pathname:Ljava/lang/String;
            ifnull 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/URLResource;

  public long length();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 77
            lconst_0
            lstore 1 /* totalRead */
        start local 1 // long totalRead
         1: .line 78
            aconst_null
            astore 3 /* is */
        start local 3 // java.io.InputStream is
         2: .line 81
            aload 0 /* this */
            invokevirtual org.jruby.util.URLResource.openInputStream:()Ljava/io/InputStream;
            astore 3 /* is */
         3: .line 82
            sipush 8096
            newarray 8
            astore 4 /* buf */
        start local 4 // byte[] buf
         4: .line 85
            goto 6
        start local 5 // int amountRead
         5: .line 86
      StackMap locals: org.jruby.util.URLResource long java.io.InputStream byte[] int
      StackMap stack:
            lload 1 /* totalRead */
            iload 5 /* amountRead */
            i2l
            ladd
            lstore 1 /* totalRead */
        end local 5 // int amountRead
         6: .line 85
      StackMap locals:
      StackMap stack:
            aload 3 /* is */
            aload 4 /* buf */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 5 /* amountRead */
        start local 5 // int amountRead
         7: iconst_m1
            if_icmpne 5
         8: .line 89
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 5 // int amountRead
        end local 4 // byte[] buf
         9: .line 90
            goto 11
        10: .line 91
      StackMap locals: org.jruby.util.URLResource long java.io.InputStream
      StackMap stack: java.io.IOException
            pop
            aload 3 /* is */
            invokestatic org.jruby.util.URLResource.close:(Ljava/io/Closeable;)V
        11: .line 93
      StackMap locals:
      StackMap stack:
            lload 1 /* totalRead */
            lreturn
        end local 3 // java.io.InputStream is
        end local 1 // long totalRead
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/jruby/util/URLResource;
            1   12     1   totalRead  J
            2   12     3          is  Ljava/io/InputStream;
            4    9     4         buf  [B
            5    6     5  amountRead  I
            7    9     5  amountRead  I
      Exception table:
        from    to  target  type
           2     9      10  Class java.io.IOException

  public boolean canRead();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 97
            aload 0 /* this */
            invokevirtual org.jruby.util.URLResource.exists:()Z
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public boolean canWrite();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 100
            iconst_0
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public boolean canExecute();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 103
            iconst_0
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public java.lang.String[] list();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 106
            aload 0 /* this */
            getfield org.jruby.util.URLResource.list:[Ljava/lang/String;
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public boolean isSymLink();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 109
            iconst_0
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public long lastModified();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 113
            lconst_0
            lreturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public java.nio.file.attribute.FileTime lastModifiedTime();
    descriptor: ()Ljava/nio/file/attribute/FileTime;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 117
            aconst_null
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public java.nio.file.attribute.FileTime lastAccessTime();
    descriptor: ()Ljava/nio/file/attribute/FileTime;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 121
            aconst_null
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public java.nio.file.attribute.FileTime creationTime();
    descriptor: ()Ljava/nio/file/attribute/FileTime;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 125
            aconst_null
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public int errno();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 130
            getstatic jnr.constants.platform.Errno.ENOENT:Ljnr/constants/platform/Errno;
            invokevirtual jnr.constants.platform.Errno.intValue:()I
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public jnr.posix.FileStat stat();
    descriptor: ()Ljnr/posix/FileStat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 135
            new org.jruby.util.DummyResourceStat
            dup
            aload 0 /* this */
            invokespecial org.jruby.util.DummyResourceStat.<init>:(Lorg/jruby/util/DummyResourceStat$FileResourceExt;)V
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public jnr.posix.FileStat lstat();
    descriptor: ()Ljnr/posix/FileStat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 140
            aload 0 /* this */
            invokevirtual org.jruby.util.URLResource.stat:()Ljnr/posix/FileStat;
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.URLResource this
        start local 1 // java.lang.Class type
         0: .line 145
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.lang.Class type
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;
            0    1     1  type  Ljava/lang/Class<TT;>;
    Exceptions:
      throws java.lang.UnsupportedOperationException
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
      Name  Flags
      type  

  public java.io.InputStream openInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 150
            aload 0 /* this */
            getfield org.jruby.util.URLResource.pathname:Ljava/lang/String;
            ifnull 2
         1: .line 151
            aload 0 /* this */
            getfield org.jruby.util.URLResource.cl:Ljava/lang/ClassLoader;
            aload 0 /* this */
            getfield org.jruby.util.URLResource.pathname:Ljava/lang/String;
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            areturn
         2: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.URLResource.url:Ljava/net/URL;
            ifnonnull 4
         3: .line 154
            new org.jruby.util.ResourceException$NotFound
            dup
            aload 0 /* this */
            invokevirtual org.jruby.util.URLResource.absolutePath:()Ljava/lang/String;
            invokespecial org.jruby.util.ResourceException$NotFound.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 156
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.util.URLResource.url:Ljava/net/URL;
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/jruby/util/URLResource;
    Exceptions:
      throws java.io.IOException

  public java.nio.channels.Channel openChannel(int, int);
    descriptor: (II)Ljava/nio/channels/Channel;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.jruby.util.URLResource this
        start local 1 // int flags
        start local 2 // int perm
         0: .line 161
            aload 0 /* this */
            invokevirtual org.jruby.util.URLResource.openInputStream:()Ljava/io/InputStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
            areturn
        end local 2 // int perm
        end local 1 // int flags
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/jruby/util/URLResource;
            0    1     1  flags  I
            0    1     2   perm  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      flags  
      perm   

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.util.URLResource this
        start local 1 // java.lang.Object obj
         0: .line 166
            aload 1 /* obj */
            instanceof org.jruby.util.URLResource
            ifeq 2
         1: .line 167
            aload 0 /* this */
            getfield org.jruby.util.URLResource.uri:Ljava/lang/String;
            aload 1 /* obj */
            checkcast org.jruby.util.URLResource
            getfield org.jruby.util.URLResource.uri:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
         2: .line 169
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/jruby/util/URLResource;
            0    3     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 174
            bipush 17
            aload 0 /* this */
            getfield org.jruby.util.URLResource.uri:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            imul
            ireturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jruby.util.URLResource this
         0: .line 179
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 123
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.jruby.util.URLResource.absolutePath:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            bipush 125
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.jruby.util.URLResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/util/URLResource;

  public static org.jruby.util.FileResource createClassloaderURI(org.jruby.Ruby, java.lang.String, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/util/FileResource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String pathname
        start local 2 // boolean asFile
         0: .line 183
            aload 0 /* runtime */
            ifnull 1
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
            goto 2
      StackMap locals:
      StackMap stack:
         1: invokestatic org.jruby.RubyInstanceConfig.defaultClassLoader:()Ljava/lang/ClassLoader;
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
         2: astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
         3: .line 185
            new java.net.URI
            dup
            aload 1 /* pathname */
            ldc "^/*"
            ldc "/"
            invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
         4: .line 186
            invokevirtual java.net.URI.normalize:()Ljava/net/URI;
            invokevirtual java.net.URI.getPath:()Ljava/lang/String;
            ldc "^/([.][.]/)*"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
         5: .line 185
            astore 1 /* pathname */
         6: .line 187
            goto 9
         7: .line 188
      StackMap locals: org.jruby.Ruby java.lang.String int java.lang.ClassLoader
      StackMap stack: java.net.URISyntaxException
            pop
         8: .line 189
            aload 1 /* pathname */
            ldc "^[.]?/*"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* pathname */
         9: .line 191
      StackMap locals:
      StackMap stack:
            aload 3 /* cl */
            aload 1 /* pathname */
            invokevirtual java.lang.ClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            astore 4 /* url */
        start local 4 // java.net.URL url
        10: .line 192
            aconst_null
            astore 5 /* files */
        start local 5 // java.lang.String[] files
        11: .line 193
            iload 2 /* asFile */
            ifne 29
        12: .line 194
            aload 3 /* cl */
            aload 1 /* pathname */
            invokestatic org.jruby.util.URLResource.listClassLoaderFiles:(Ljava/lang/ClassLoader;Ljava/lang/String;)[Ljava/lang/String;
            astore 5 /* files */
        13: .line 195
            aload 5 /* files */
            ifnonnull 29
        14: .line 196
            iconst_0
            istore 6 /* isDirectory */
        start local 6 // boolean isDirectory
        15: .line 198
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 7 /* list */
        start local 7 // java.util.Set list
        16: .line 199
            aload 7 /* list */
            ldc "."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
            aload 7 /* list */
            ldc ".."
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 203
            aload 3 /* cl */
            aload 1 /* pathname */
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 8 /* urls */
        start local 8 // java.util.Enumeration urls
        18: .line 204
            goto 20
        19: .line 205
      StackMap locals: org.jruby.Ruby java.lang.String int java.lang.ClassLoader java.net.URL java.lang.String[] int java.util.Set java.util.Enumeration
      StackMap stack:
            aload 7 /* list */
            aload 8 /* urls */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.URL
            iload 6 /* isDirectory */
            invokestatic org.jruby.util.URLResource.addDirectoryEntries:(Ljava/util/Set;Ljava/net/URL;Z)Z
            istore 6 /* isDirectory */
        20: .line 204
      StackMap locals:
      StackMap stack:
            aload 8 /* urls */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 19
        21: .line 207
            aload 0 /* runtime */
            ifnull 25
        22: .line 210
            aload 3 /* cl */
            aload 7 /* list */
            aload 1 /* pathname */
            iload 6 /* isDirectory */
            invokestatic org.jruby.util.URLResource.addDirectoriesFromClassloader:(Ljava/lang/ClassLoader;Ljava/util/Set;Ljava/lang/String;Z)Z
            istore 6 /* isDirectory */
        23: .line 211
            aload 3 /* cl */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            aload 7 /* list */
            aload 1 /* pathname */
            iload 6 /* isDirectory */
            invokestatic org.jruby.util.URLResource.addDirectoriesFromClassloader:(Ljava/lang/ClassLoader;Ljava/util/Set;Ljava/lang/String;Z)Z
            istore 6 /* isDirectory */
        24: .line 212
            goto 26
        25: .line 215
      StackMap locals:
      StackMap stack:
            aload 3 /* cl */
            aload 7 /* list */
            aload 1 /* pathname */
            iload 6 /* isDirectory */
            invokestatic org.jruby.util.URLResource.addDirectoriesFromClassloader:(Ljava/lang/ClassLoader;Ljava/util/Set;Ljava/lang/String;Z)Z
            istore 6 /* isDirectory */
        26: .line 217
      StackMap locals:
      StackMap stack:
            iload 6 /* isDirectory */
            ifeq 29
            aload 7 /* list */
            aload 7 /* list */
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 5 /* files */
        end local 8 // java.util.Enumeration urls
        27: .line 218
            goto 29
        28: .line 219
      StackMap locals: org.jruby.Ruby java.lang.String int java.lang.ClassLoader java.net.URL java.lang.String[] int java.util.Set
      StackMap stack: java.io.IOException
            pop
        end local 7 // java.util.Set list
        end local 6 // boolean isDirectory
        29: .line 222
      StackMap locals:
      StackMap stack:
            new org.jruby.util.URLResource
            dup
            new java.lang.StringBuilder
            dup
            getstatic org.jruby.util.URLResource.URI_CLASSLOADER:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 1 /* pathname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* cl */
            aload 4 /* url */
            ifnonnull 30
            aconst_null
            goto 31
      StackMap locals: org.jruby.Ruby java.lang.String int java.lang.ClassLoader java.net.URL java.lang.String[]
      StackMap stack: new 29 new 29 java.lang.String java.lang.ClassLoader
        30: aload 1 /* pathname */
      StackMap locals: org.jruby.Ruby java.lang.String int java.lang.ClassLoader java.net.URL java.lang.String[]
      StackMap stack: new 29 new 29 java.lang.String java.lang.ClassLoader java.lang.String
        31: aload 5 /* files */
            invokespecial org.jruby.util.URLResource.<init>:(Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;)V
            areturn
        end local 5 // java.lang.String[] files
        end local 4 // java.net.URL url
        end local 3 // java.lang.ClassLoader cl
        end local 2 // boolean asFile
        end local 1 // java.lang.String pathname
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0      runtime  Lorg/jruby/Ruby;
            0   32     1     pathname  Ljava/lang/String;
            0   32     2       asFile  Z
            3   32     3           cl  Ljava/lang/ClassLoader;
           10   32     4          url  Ljava/net/URL;
           11   32     5        files  [Ljava/lang/String;
           15   29     6  isDirectory  Z
           16   29     7         list  Ljava/util/Set<Ljava/lang/String;>;
           18   27     8         urls  Ljava/util/Enumeration<Ljava/net/URL;>;
      Exception table:
        from    to  target  type
           3     6       7  Class java.net.URISyntaxException
          17    27      28  Class java.io.IOException
    MethodParameters:
          Name  Flags
      runtime   
      pathname  
      asFile    

  private static boolean addDirectoriesFromClassloader(java.lang.ClassLoader, java.util.Set<java.lang.String>, java.lang.String, );
    descriptor: (Ljava/lang/ClassLoader;Ljava/util/Set;Ljava/lang/String;Z)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // java.lang.ClassLoader cl
        start local 1 // java.util.Set list
        start local 2 // java.lang.String pathname
        start local 3 // boolean isDirectory
         0: .line 226
            aload 0 /* cl */
            instanceof java.net.URLClassLoader
            ifeq 8
         1: .line 227
            aload 0 /* cl */
            checkcast java.net.URLClassLoader
            invokevirtual java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 7
      StackMap locals: java.lang.ClassLoader java.util.Set java.lang.String int top int int java.net.URL[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* u */
        start local 4 // java.net.URL u
         3: .line 228
            aload 4 /* u */
            invokevirtual java.net.URL.getFile:()Ljava/lang/String;
            ldc ".jar"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 6
            aload 4 /* u */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 229
            new java.net.URL
            dup
            new java.lang.StringBuilder
            dup
            ldc "jar:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* u */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "!/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* pathname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 4 /* u */
         5: .line 230
            aload 1 /* list */
            aload 4 /* u */
            iload 3 /* isDirectory */
            invokestatic org.jruby.util.URLResource.addDirectoryEntries:(Ljava/util/Set;Ljava/net/URL;Z)Z
            istore 3 /* isDirectory */
        end local 4 // java.net.URL u
         6: .line 227
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         7: iload 5
            iload 6
            if_icmplt 2
         8: .line 234
      StackMap locals: java.lang.ClassLoader java.util.Set java.lang.String int
      StackMap stack:
            iload 3 /* isDirectory */
            ireturn
        end local 3 // boolean isDirectory
        end local 2 // java.lang.String pathname
        end local 1 // java.util.Set list
        end local 0 // java.lang.ClassLoader cl
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0           cl  Ljava/lang/ClassLoader;
            0    9     1         list  Ljava/util/Set<Ljava/lang/String;>;
            0    9     2     pathname  Ljava/lang/String;
            0    9     3  isDirectory  Z
            3    6     4            u  Ljava/net/URL;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/ClassLoader;Ljava/util/Set<Ljava/lang/String;>;Ljava/lang/String;Z)Z
    MethodParameters:
             Name  Flags
      cl           
      list         
      pathname     
      isDirectory  

  private static boolean addDirectoryEntries(java.util.Set<java.lang.String>, java.net.URL, );
    descriptor: (Ljava/util/Set;Ljava/net/URL;Z)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.util.Set entries
        start local 1 // java.net.URL url
        start local 2 // boolean isDirectory
         0: .line 238
            aload 1 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
               104987: 1
              3143036: 2
              default: 12
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 3
            ldc "jar"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            goto 12
      StackMap locals:
      StackMap stack:
         2: aload 3
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
            goto 12
         3: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* url */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            invokestatic org.jruby.util.JarResource.create:(Ljava/lang/String;)Lorg/jruby/util/JarResource;
            astore 4 /* jar */
        start local 4 // org.jruby.util.FileResource jar
         4: .line 242
            aload 4 /* jar */
            ifnull 12
            aload 4 /* jar */
            invokeinterface org.jruby.util.FileResource.isDirectory:()Z
            ifeq 12
         5: .line 243
            iload 2 /* isDirectory */
            ifne 6
            iconst_1
            istore 2 /* isDirectory */
         6: .line 244
      StackMap locals: org.jruby.util.FileResource
      StackMap stack:
            aload 0 /* entries */
            aload 4 /* jar */
            invokeinterface org.jruby.util.FileResource.list:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 246
            goto 12
        end local 4 // org.jruby.util.FileResource jar
         8: .line 249
      StackMap locals:
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* url */
            invokevirtual java.net.URL.getPath:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 5 /* file */
        start local 5 // java.io.File file
         9: .line 250
            aload 5 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 12
        10: .line 251
            iload 2 /* isDirectory */
            ifne 11
            iconst_1
            istore 2 /* isDirectory */
        11: .line 252
      StackMap locals: java.util.Set java.net.URL int java.lang.String top java.io.File
      StackMap stack:
            aload 0 /* entries */
            aload 5 /* file */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 5 // java.io.File file
        12: .line 257
      StackMap locals: java.util.Set java.net.URL int
      StackMap stack:
            iload 2 /* isDirectory */
            ireturn
        end local 2 // boolean isDirectory
        end local 1 // java.net.URL url
        end local 0 // java.util.Set entries
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0      entries  Ljava/util/Set<Ljava/lang/String;>;
            0   13     1          url  Ljava/net/URL;
            0   13     2  isDirectory  Z
            4    8     4          jar  Lorg/jruby/util/FileResource;
            9   12     5         file  Ljava/io/File;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;Ljava/net/URL;Z)Z
    MethodParameters:
             Name  Flags
      entries      
      url          
      isDirectory  

  public static org.jruby.util.FileResource create(org.jruby.Ruby, java.lang.String, boolean);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/util/FileResource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String pathname
        start local 2 // boolean asFile
         0: .line 261
            aload 1 /* pathname */
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 2
         1: .line 262
            aconst_null
            areturn
         2: .line 265
      StackMap locals:
      StackMap stack:
            aload 1 /* pathname */
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            bipush 92
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            astore 1 /* pathname */
         3: .line 266
            aload 1 /* pathname */
            getstatic org.jruby.util.URLResource.CLASSLOADER:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 267
            aload 0 /* runtime */
            aload 1 /* pathname */
            getstatic org.jruby.util.URLResource.CLASSLOADER:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            iload 2 /* asFile */
            invokestatic org.jruby.util.URLResource.createClassloaderURI:(Lorg/jruby/Ruby;Ljava/lang/String;Z)Lorg/jruby/util/FileResource;
            areturn
         5: .line 269
      StackMap locals:
      StackMap stack:
            aload 1 /* pathname */
            iload 2 /* asFile */
            invokestatic org.jruby.util.URLResource.createRegularURI:(Ljava/lang/String;Z)Lorg/jruby/util/FileResource;
            areturn
        end local 2 // boolean asFile
        end local 1 // java.lang.String pathname
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   runtime  Lorg/jruby/Ruby;
            0    6     1  pathname  Ljava/lang/String;
            0    6     2    asFile  Z
    MethodParameters:
          Name  Flags
      runtime   
      pathname  
      asFile    

  private static org.jruby.util.FileResource createRegularURI(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lorg/jruby/util/FileResource;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.lang.String pathname
        start local 1 // boolean asFile
         0: .line 277
            aload 0 /* pathname */
            ldc "file:/([^/])"
            ldc "file:///$1"
            invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* pathname */
         1: .line 278
            aload 0 /* pathname */
            ldc ":/([^/])"
            ldc "://$1"
            invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* pathname */
         2: .line 280
            new java.net.URL
            dup
            aload 0 /* pathname */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 2 /* url */
        start local 2 // java.net.URL url
         3: .line 282
            aload 2 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            ldc "http"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 7
         4: aconst_null
            areturn
        end local 2 // java.net.URL url
         5: .line 284
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
         6: .line 285
            new org.jruby.util.URLResource
            dup
            new java.lang.StringBuilder
            dup
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* pathname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            aconst_null
            invokespecial org.jruby.util.URLResource.<init>:(Ljava/lang/String;Ljava/net/URL;[Ljava/lang/String;)V
            areturn
        start local 2 // java.net.URL url
         7: .line 287
      StackMap locals: java.net.URL
      StackMap stack:
            iload 1 /* asFile */
            ifeq 8
            aconst_null
            goto 9
      StackMap locals:
      StackMap stack:
         8: aload 0 /* pathname */
            invokestatic org.jruby.util.URLResource.listFiles:(Ljava/lang/String;)[Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String[]
         9: astore 3 /* files */
        start local 3 // java.lang.String[] files
        10: .line 288
            aload 3 /* files */
            ifnull 12
        11: .line 289
            new org.jruby.util.URLResource
            dup
            new java.lang.StringBuilder
            dup
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* pathname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            aload 3 /* files */
            invokespecial org.jruby.util.URLResource.<init>:(Ljava/lang/String;Ljava/net/URL;[Ljava/lang/String;)V
            areturn
        12: .line 292
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 2 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 4 /* is */
        start local 4 // java.io.InputStream is
        13: .line 294
            aload 4 /* is */
            ifnull 16
        14: .line 295
            aload 4 /* is */
            invokevirtual java.io.InputStream.close:()V
        15: .line 296
            goto 17
        16: .line 299
      StackMap locals: java.io.InputStream
      StackMap stack:
            aconst_null
            astore 2 /* url */
        17: .line 301
      StackMap locals:
      StackMap stack:
            new org.jruby.util.URLResource
            dup
            new java.lang.StringBuilder
            dup
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* pathname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* url */
            aconst_null
            invokespecial org.jruby.util.URLResource.<init>:(Ljava/lang/String;Ljava/net/URL;[Ljava/lang/String;)V
        18: areturn
        end local 4 // java.io.InputStream is
        19: .line 303
      StackMap locals: java.lang.String int java.net.URL java.lang.String[]
      StackMap stack: java.io.IOException
            pop
        20: .line 304
            new org.jruby.util.URLResource
            dup
            new java.lang.StringBuilder
            dup
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* pathname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aconst_null
            aconst_null
            invokespecial org.jruby.util.URLResource.<init>:(Ljava/lang/String;Ljava/net/URL;[Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.String[] files
        end local 2 // java.net.URL url
        end local 1 // boolean asFile
        end local 0 // java.lang.String pathname
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0  pathname  Ljava/lang/String;
            0   21     1    asFile  Z
            3    5     2       url  Ljava/net/URL;
            7   21     2       url  Ljava/net/URL;
           10   21     3     files  [Ljava/lang/String;
           13   19     4        is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           0     4       5  Class java.net.MalformedURLException
          12    18      19  Class java.io.IOException
    MethodParameters:
          Name  Flags
      pathname  
      asFile    

  private static java.lang.String[] listFilesFromInputStream(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // java.io.InputStream is
         0: .line 309
            aconst_null
            astore 1 /* reader */
        start local 1 // java.io.BufferedReader reader
         1: .line 311
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* files */
        start local 2 // java.util.List files
         2: .line 312
            new java.io.BufferedReader
            dup
            new java.io.InputStreamReader
            dup
            aload 0 /* is */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            astore 1 /* reader */
         3: .line 313
            aload 1 /* reader */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 3 /* line */
        start local 3 // java.lang.String line
         4: .line 314
            goto 7
         5: .line 315
      StackMap locals: java.io.BufferedReader java.util.List java.lang.String
      StackMap stack:
            aload 2 /* files */
            aload 3 /* line */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 316
            aload 1 /* reader */
            invokevirtual java.io.BufferedReader.readLine:()Ljava/lang/String;
            astore 3 /* line */
         7: .line 314
      StackMap locals:
      StackMap stack:
            aload 3 /* line */
            ifnonnull 5
         8: .line 318
            aload 2 /* files */
            aload 2 /* files */
            invokeinterface java.util.List.size:()I
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 5
         9: .line 324
            aload 1 /* reader */
            invokestatic org.jruby.util.URLResource.close:(Ljava/io/Closeable;)V
        10: .line 318
            aload 5
            areturn
        end local 3 // java.lang.String line
        end local 2 // java.util.List files
        11: .line 320
      StackMap locals: java.io.InputStream java.io.BufferedReader
      StackMap stack: java.io.IOException
            pop
        12: .line 324
            aload 1 /* reader */
            invokestatic org.jruby.util.URLResource.close:(Ljava/io/Closeable;)V
        13: .line 321
            aconst_null
            areturn
        14: .line 323
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        15: .line 324
            aload 1 /* reader */
            invokestatic org.jruby.util.URLResource.close:(Ljava/io/Closeable;)V
        16: .line 325
            aload 4
            athrow
        end local 1 // java.io.BufferedReader reader
        end local 0 // java.io.InputStream is
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0      is  Ljava/io/InputStream;
            1   17     1  reader  Ljava/io/BufferedReader;
            2   11     2   files  Ljava/util/List<Ljava/lang/String;>;
            4   11     3    line  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     9      11  Class java.io.IOException
           1     9      14  any
          11    12      14  any
    MethodParameters:
      Name  Flags
      is    

  private static java.lang.String[] listClassLoaderFiles(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // java.lang.ClassLoader classloader
        start local 1 // java.lang.String pathname
         0: .line 330
            new java.lang.StringBuilder
            dup
            aload 1 /* pathname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* pathname */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 1
            aload 1 /* pathname */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 2
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         1: ldc ".jrubydir"
            goto 3
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         2: ldc "/.jrubydir"
      StackMap locals: java.lang.ClassLoader java.lang.String
      StackMap stack: java.lang.StringBuilder java.lang.String
         3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* path */
        start local 2 // java.lang.String path
         4: .line 331
            aload 0 /* classloader */
            aload 2 /* path */
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 3 /* urls */
        start local 3 // java.util.Enumeration urls
         5: .line 332
            aload 3 /* urls */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 7
         6: aconst_null
            areturn
         7: .line 334
      StackMap locals: java.lang.String java.util.Enumeration
      StackMap stack:
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 4 /* result */
        start local 4 // java.util.Set result
         8: .line 335
            goto 15
         9: .line 336
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* urls */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.net.URL
            astore 5 /* url */
        start local 5 // java.net.URL url
        10: .line 337
            aload 5 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            invokestatic org.jruby.util.URLResource.listFilesFromInputStream:(Ljava/io/InputStream;)[Ljava/lang/String;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 14
      StackMap locals: java.lang.ClassLoader java.lang.String java.lang.String java.util.Enumeration java.util.Set java.net.URL top int int java.lang.String[]
      StackMap stack:
        11: aload 9
            iload 7
            aaload
            astore 6 /* entry */
        start local 6 // java.lang.String entry
        12: .line 338
            aload 4 /* result */
            aload 6 /* entry */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 13
            aload 4 /* result */
            aload 6 /* entry */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String entry
        13: .line 337
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        14: iload 7
            iload 8
            if_icmplt 11
        end local 5 // java.net.URL url
        15: .line 335
      StackMap locals: java.lang.ClassLoader java.lang.String java.lang.String java.util.Enumeration java.util.Set
      StackMap stack:
            aload 3 /* urls */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 9
        16: .line 341
            aload 4 /* result */
            aload 4 /* result */
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
        17: areturn
        end local 4 // java.util.Set result
        end local 3 // java.util.Enumeration urls
        end local 2 // java.lang.String path
        18: .line 343
      StackMap locals: java.lang.ClassLoader java.lang.String
      StackMap stack: java.io.IOException
            pop
        19: .line 344
            aconst_null
            areturn
        end local 1 // java.lang.String pathname
        end local 0 // java.lang.ClassLoader classloader
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0  classloader  Ljava/lang/ClassLoader;
            0   20     1     pathname  Ljava/lang/String;
            4   18     2         path  Ljava/lang/String;
            5   18     3         urls  Ljava/util/Enumeration<Ljava/net/URL;>;
            8   18     4       result  Ljava/util/Set<Ljava/lang/String;>;
           10   15     5          url  Ljava/net/URL;
           12   13     6        entry  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     6      18  Class java.io.IOException
           7    17      18  Class java.io.IOException
    MethodParameters:
             Name  Flags
      classloader  
      pathname     

  private static java.lang.String[] listFiles(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String pathname
         0: .line 350
            new java.net.URL
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* pathname */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/.jrubydir"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            astore 1 /* is */
        start local 1 // java.io.InputStream is
         1: .line 352
            aload 1 /* is */
            ifnull 4
         2: .line 353
            aload 1 /* is */
            invokestatic org.jruby.util.URLResource.listFilesFromInputStream:(Ljava/io/InputStream;)[Ljava/lang/String;
         3: areturn
         4: .line 355
      StackMap locals: java.io.InputStream
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.io.InputStream is
         5: .line 357
      StackMap locals: java.lang.String
      StackMap stack: java.io.IOException
            pop
         6: .line 358
            aconst_null
            areturn
        end local 0 // java.lang.String pathname
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  pathname  Ljava/lang/String;
            1    5     1        is  Ljava/io/InputStream;
      Exception table:
        from    to  target  type
           0     3       5  Class java.io.IOException
    MethodParameters:
          Name  Flags
      pathname  

  private static void close(java.io.Closeable);
    descriptor: (Ljava/io/Closeable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.Closeable resource
         0: .line 363
            aload 0 /* resource */
            ifnull 4
         1: .line 364
            aload 0 /* resource */
            invokeinterface java.io.Closeable.close:()V
         2: goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         3: pop
         4: .line 366
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.Closeable resource
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  resource  Ljava/io/Closeable;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
    MethodParameters:
          Name  Flags
      resource  final

  public static java.net.URL getResourceURL(org.jruby.Ruby, java.lang.String);
    descriptor: (Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // java.lang.String location
         0: .line 369
            aload 1 /* location */
            getstatic org.jruby.util.URLResource.URI_CLASSLOADER:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 370
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getJRubyClassLoader:()Lorg/jruby/util/JRubyClassLoader;
            aload 1 /* location */
            getstatic org.jruby.util.URLResource.URI_CLASSLOADER:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual org.jruby.util.JRubyClassLoader.getResource:(Ljava/lang/String;)Ljava/net/URL;
            areturn
         2: .line 373
      StackMap locals:
      StackMap stack:
            new java.net.URL
            dup
            aload 1 /* location */
            new java.lang.StringBuilder
            dup
            ldc "^"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.jruby.util.URLResource.URI:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.replaceFirst:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
         3: areturn
         4: .line 375
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            astore 2 /* e */
        start local 2 // java.net.MalformedURLException e
         5: .line 376
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "BUG in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc Lorg/jruby/util/URLResource;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.net.MalformedURLException e
        end local 1 // java.lang.String location
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0   runtime  Lorg/jruby/Ruby;
            0    6     1  location  Ljava/lang/String;
            5    6     2         e  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.net.MalformedURLException
    MethodParameters:
          Name  Flags
      runtime   
      location  
}
SourceFile: "URLResource.java"
InnerClasses:
  abstract FileResourceExt = org.jruby.util.DummyResourceStat$FileResourceExt of org.jruby.util.DummyResourceStat
  public NotFound = org.jruby.util.ResourceException$NotFound of org.jruby.util.ResourceException