final class javassist.JarClassPath implements javassist.ClassPath
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: javassist.JarClassPath
  super_class: java.lang.Object
{
  java.util.List<java.lang.String> jarfileEntries;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljava/lang/String;>;

  java.lang.String jarfileURL;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // javassist.JarClassPath this
        start local 1 // java.lang.String pathname
         0: .line 134
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 135
            aconst_null
            astore 2 /* jarfile */
        start local 2 // java.util.jar.JarFile jarfile
         2: .line 137
            new java.util.jar.JarFile
            dup
            aload 1 /* pathname */
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 2 /* jarfile */
         3: .line 138
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield javassist.JarClassPath.jarfileEntries:Ljava/util/List;
         4: .line 139
            aload 2 /* jarfile */
            invokevirtual java.util.jar.JarFile.entries:()Ljava/util/Enumeration;
            invokestatic java.util.Collections.list:(Ljava/util/Enumeration;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.jar.JarEntry
            astore 3 /* je */
        start local 3 // java.util.jar.JarEntry je
         6: .line 140
            aload 3 /* je */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            ldc ".class"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 141
            aload 0 /* this */
            getfield javassist.JarClassPath.jarfileEntries:Ljava/util/List;
            aload 3 /* je */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.util.jar.JarEntry je
         8: .line 139
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 142
            aload 0 /* this */
            new java.io.File
            dup
            aload 1 /* pathname */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
        10: .line 143
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
        11: .line 142
            putfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
        12: .line 147
            aload 2 /* jarfile */
            ifnull 16
        13: .line 149
            aload 2 /* jarfile */
            invokevirtual java.util.jar.JarFile.close:()V
        14: .line 150
            goto 16
      StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile
      StackMap stack: java.io.IOException
        15: pop
        16: .line 144
      StackMap locals:
      StackMap stack:
            return
        17: .line 145
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        18: .line 147
            aload 2 /* jarfile */
            ifnull 28
        19: .line 149
            aload 2 /* jarfile */
            invokevirtual java.util.jar.JarFile.close:()V
        20: .line 150
            goto 28
      StackMap locals:
      StackMap stack: java.io.IOException
        21: pop
            goto 28
        22: .line 146
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        23: .line 147
            aload 2 /* jarfile */
            ifnull 27
        24: .line 149
            aload 2 /* jarfile */
            invokevirtual java.util.jar.JarFile.close:()V
        25: .line 150
            goto 27
      StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile top top java.lang.Throwable
      StackMap stack: java.io.IOException
        26: pop
        27: .line 151
      StackMap locals:
      StackMap stack:
            aload 5
            athrow
        28: .line 152
      StackMap locals: javassist.JarClassPath java.lang.String java.util.jar.JarFile
      StackMap stack:
            new javassist.NotFoundException
            dup
            aload 1 /* pathname */
            invokespecial javassist.NotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.util.jar.JarFile jarfile
        end local 1 // java.lang.String pathname
        end local 0 // javassist.JarClassPath this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0      this  Ljavassist/JarClassPath;
            0   29     1  pathname  Ljava/lang/String;
            2   29     2   jarfile  Ljava/util/jar/JarFile;
            6    8     3        je  Ljava/util/jar/JarEntry;
      Exception table:
        from    to  target  type
          13    14      15  Class java.io.IOException
           2    12      17  Class java.io.IOException
          19    20      21  Class java.io.IOException
           2    12      22  any
          17    18      22  any
          24    25      26  Class java.io.IOException
    Exceptions:
      throws javassist.NotFoundException
    MethodParameters:
          Name  Flags
      pathname  

  public java.io.InputStream openClassfile(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // javassist.JarClassPath this
        start local 1 // java.lang.String classname
         0: .line 159
            aload 0 /* this */
            aload 1 /* classname */
            invokevirtual javassist.JarClassPath.find:(Ljava/lang/String;)Ljava/net/URL;
            astore 2 /* jarURL */
        start local 2 // java.net.URL jarURL
         1: .line 160
            aload 2 /* jarURL */
            ifnull 13
         2: .line 162
            getstatic javassist.ClassPool.cacheOpenedJarFile:Z
            ifeq 5
         3: .line 163
            aload 2 /* jarURL */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
         4: areturn
         5: .line 165
      StackMap locals: java.net.URL
      StackMap stack:
            aload 2 /* jarURL */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            astore 3 /* con */
        start local 3 // java.net.URLConnection con
         6: .line 166
            aload 3 /* con */
            iconst_0
            invokevirtual java.net.URLConnection.setUseCaches:(Z)V
         7: .line 167
            aload 3 /* con */
            invokevirtual java.net.URLConnection.getInputStream:()Ljava/io/InputStream;
         8: areturn
        end local 3 // java.net.URLConnection con
         9: .line 170
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        10: .line 171
            new javassist.NotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "broken jar file?: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 172
            aload 1 /* classname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 171
            invokespecial javassist.NotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 174
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.net.URL jarURL
        end local 1 // java.lang.String classname
        end local 0 // javassist.JarClassPath this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Ljavassist/JarClassPath;
            0   14     1  classname  Ljava/lang/String;
            1   14     2     jarURL  Ljava/net/URL;
            6    9     3        con  Ljava/net/URLConnection;
      Exception table:
        from    to  target  type
           2     4       9  Class java.io.IOException
           5     8       9  Class java.io.IOException
    Exceptions:
      throws javassist.NotFoundException
    MethodParameters:
           Name  Flags
      classname  

  public java.net.URL find(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // javassist.JarClassPath this
        start local 1 // java.lang.String classname
         0: .line 179
            new java.lang.StringBuilder
            dup
            aload 1 /* classname */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".class"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* jarname */
        start local 2 // java.lang.String jarname
         1: .line 180
            aload 0 /* this */
            getfield javassist.JarClassPath.jarfileEntries:Ljava/util/List;
            aload 2 /* jarname */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 5
         2: .line 182
            new java.net.URL
            dup
            ldc "jar:%s!/%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* jarname */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
         3: areturn
         4: .line 184
      StackMap locals: javassist.JarClassPath java.lang.String java.lang.String
      StackMap stack: java.net.MalformedURLException
            pop
         5: .line 185
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.lang.String jarname
        end local 1 // java.lang.String classname
        end local 0 // javassist.JarClassPath this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljavassist/JarClassPath;
            0    6     1  classname  Ljava/lang/String;
            1    6     2    jarname  Ljava/lang/String;
      Exception table:
        from    to  target  type
           2     3       4  Class java.net.MalformedURLException
    MethodParameters:
           Name  Flags
      classname  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javassist.JarClassPath this
         0: .line 190
            aload 0 /* this */
            getfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
            ifnonnull 1
            ldc "<null>"
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield javassist.JarClassPath.jarfileURL:Ljava/lang/String;
            invokevirtual java.lang.String.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // javassist.JarClassPath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavassist/JarClassPath;
}
SourceFile: "ClassPoolTail.java"