public abstract class org.apache.catalina.webresources.AbstractArchiveResource extends org.apache.catalina.webresources.AbstractResource
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.catalina.webresources.AbstractArchiveResource
  super_class: org.apache.catalina.webresources.AbstractResource
{
  private final org.apache.catalina.webresources.AbstractArchiveResourceSet archiveResourceSet;
    descriptor: Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private final java.util.jar.JarEntry resource;
    descriptor: Ljava/util/jar/JarEntry;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private boolean readCerts;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.security.cert.Certificate[] certificates;
    descriptor: [Ljava/security/cert/Certificate;
    flags: (0x0002) ACC_PRIVATE

  protected void <init>(org.apache.catalina.webresources.AbstractArchiveResourceSet, java.lang.String, java.lang.String, java.util.jar.JarEntry, java.lang.String);
    descriptor: (Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;Ljava/lang/String;Ljava/lang/String;Ljava/util/jar/JarEntry;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
        start local 1 // org.apache.catalina.webresources.AbstractArchiveResourceSet archiveResourceSet
        start local 2 // java.lang.String webAppPath
        start local 3 // java.lang.String baseUrl
        start local 4 // java.util.jar.JarEntry jarEntry
        start local 5 // java.lang.String codeBaseUrl
         0: .line 40
            aload 0 /* this */
            aload 1 /* archiveResourceSet */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
            aload 2 /* webAppPath */
            invokespecial org.apache.catalina.webresources.AbstractResource.<init>:(Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;)V
         1: .line 35
            aload 0 /* this */
            iconst_0
            putfield org.apache.catalina.webresources.AbstractArchiveResource.readCerts:Z
         2: .line 41
            aload 0 /* this */
            aload 1 /* archiveResourceSet */
            putfield org.apache.catalina.webresources.AbstractArchiveResource.archiveResourceSet:Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
         3: .line 42
            aload 0 /* this */
            aload 3 /* baseUrl */
            putfield org.apache.catalina.webresources.AbstractArchiveResource.baseUrl:Ljava/lang/String;
         4: .line 43
            aload 0 /* this */
            aload 4 /* jarEntry */
            putfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
         5: .line 44
            aload 0 /* this */
            aload 5 /* codeBaseUrl */
            putfield org.apache.catalina.webresources.AbstractArchiveResource.codeBaseUrl:Ljava/lang/String;
         6: .line 46
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            astore 6 /* resourceName */
        start local 6 // java.lang.String resourceName
         7: .line 47
            aload 6 /* resourceName */
            aload 6 /* resourceName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 9
         8: .line 48
            aload 6 /* resourceName */
            iconst_0
            aload 6 /* resourceName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 6 /* resourceName */
         9: .line 50
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResource org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String java.util.jar.JarEntry java.lang.String java.lang.String
      StackMap stack:
            aload 1 /* archiveResourceSet */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getInternalPath:()Ljava/lang/String;
            astore 7 /* internalPath */
        start local 7 // java.lang.String internalPath
        10: .line 51
            aload 7 /* internalPath */
            invokevirtual java.lang.String.length:()I
            ifle 16
            aload 6 /* resourceName */
        11: .line 52
            aload 7 /* internalPath */
            iconst_1
            aload 7 /* internalPath */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.subSequence:(II)Ljava/lang/CharSequence;
        12: .line 51
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
        13: .line 52
            ifeq 16
        14: .line 53
            aload 0 /* this */
            ldc ""
            putfield org.apache.catalina.webresources.AbstractArchiveResource.name:Ljava/lang/String;
        15: .line 54
            goto 21
        16: .line 55
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* resourceName */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 8 /* index */
        start local 8 // int index
        17: .line 56
            iload 8 /* index */
            iconst_m1
            if_icmpne 20
        18: .line 57
            aload 0 /* this */
            aload 6 /* resourceName */
            putfield org.apache.catalina.webresources.AbstractArchiveResource.name:Ljava/lang/String;
        19: .line 58
            goto 21
        20: .line 59
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 6 /* resourceName */
            iload 8 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            putfield org.apache.catalina.webresources.AbstractArchiveResource.name:Ljava/lang/String;
        end local 8 // int index
        21: .line 62
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.lang.String internalPath
        end local 6 // java.lang.String resourceName
        end local 5 // java.lang.String codeBaseUrl
        end local 4 // java.util.jar.JarEntry jarEntry
        end local 3 // java.lang.String baseUrl
        end local 2 // java.lang.String webAppPath
        end local 1 // org.apache.catalina.webresources.AbstractArchiveResourceSet archiveResourceSet
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   22     0                this  Lorg/apache/catalina/webresources/AbstractArchiveResource;
            0   22     1  archiveResourceSet  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0   22     2          webAppPath  Ljava/lang/String;
            0   22     3             baseUrl  Ljava/lang/String;
            0   22     4            jarEntry  Ljava/util/jar/JarEntry;
            0   22     5         codeBaseUrl  Ljava/lang/String;
            7   22     6        resourceName  Ljava/lang/String;
           10   22     7        internalPath  Ljava/lang/String;
           17   21     8               index  I
    MethodParameters:
                    Name  Flags
      archiveResourceSet  
      webAppPath          
      baseUrl             
      jarEntry            
      codeBaseUrl         

  protected org.apache.catalina.webresources.AbstractArchiveResourceSet getArchiveResourceSet();
    descriptor: ()Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 65
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.archiveResourceSet:Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  protected final java.lang.String getBase();
    descriptor: ()Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 69
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.archiveResourceSet:Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getBase:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  protected final java.lang.String getBaseUrl();
    descriptor: ()Ljava/lang/String;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 73
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.baseUrl:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  protected final java.util.jar.JarEntry getResource();
    descriptor: ()Ljava/util/jar/JarEntry;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 77
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public long getLastModified();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 82
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            invokevirtual java.util.jar.JarEntry.getTime:()J
            lreturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public boolean exists();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 87
            iconst_1
            ireturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public boolean isVirtual();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 92
            iconst_0
            ireturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public boolean isDirectory();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 97
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            invokevirtual java.util.jar.JarEntry.isDirectory:()Z
            ireturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public boolean isFile();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 102
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            invokevirtual java.util.jar.JarEntry.isDirectory:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public boolean delete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 107
            iconst_0
            ireturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 112
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public long getContentLength();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 117
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.isDirectory:()Z
            ifeq 2
         1: .line 118
            ldc -1
            lreturn
         2: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            invokevirtual java.util.jar.JarEntry.getSize:()J
            lreturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public java.lang.String getCanonicalPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 125
            aconst_null
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public boolean canRead();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 130
            iconst_1
            ireturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public long getCreation();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 135
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            invokevirtual java.util.jar.JarEntry.getTime:()J
            lreturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public java.net.URL getURL();
    descriptor: ()Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 140
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.baseUrl: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 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.resource:Ljava/util/jar/JarEntry;
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* url */
        start local 1 // java.lang.String url
         1: .line 142
            new java.net.URL
            dup
            aload 1 /* url */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
         2: areturn
         3: .line 143
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResource java.lang.String
      StackMap stack: java.net.MalformedURLException
            astore 2 /* e */
        start local 2 // java.net.MalformedURLException e
         4: .line 144
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getLog:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 6
         5: .line 145
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getLog:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.webresources.AbstractArchiveResource.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "fileResource.getUrlFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* url */
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 2 /* e */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         6: .line 147
      StackMap locals: java.net.MalformedURLException
      StackMap stack:
            aconst_null
            areturn
        end local 2 // java.net.MalformedURLException e
        end local 1 // java.lang.String url
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;
            1    7     1   url  Ljava/lang/String;
            4    7     2     e  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.net.MalformedURLException

  public java.net.URL getCodeBase();
    descriptor: ()Ljava/net/URL;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 154
            new java.net.URL
            dup
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.codeBaseUrl:Ljava/lang/String;
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
         1: areturn
         2: .line 155
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            astore 1 /* e */
        start local 1 // java.net.MalformedURLException e
         3: .line 156
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getLog:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 5
         4: .line 157
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getLog:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.webresources.AbstractArchiveResource.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "fileResource.getUrlFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.codeBaseUrl:Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            aload 1 /* e */
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         5: .line 159
      StackMap locals: java.net.MalformedURLException
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.net.MalformedURLException e
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;
            3    6     1     e  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.MalformedURLException

  public final byte[] getContent();
    descriptor: ()[B
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=9, locals=10, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 165
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getContentLength:()J
            lstore 1 /* len */
        start local 1 // long len
         1: .line 167
            lload 1 /* len */
            ldc 2147483647
            lcmp
            ifle 6
         2: .line 169
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            getstatic org.apache.catalina.webresources.AbstractArchiveResource.sm:Lorg/apache/tomcat/util/res/StringManager;
         3: .line 170
            ldc "abstractResource.getContentTooLarge"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getWebappPath:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         4: .line 171
            lload 1 /* len */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
         5: .line 169
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 174
      StackMap locals: long
      StackMap stack:
            lload 1 /* len */
            lconst_0
            lcmp
            ifge 8
         7: .line 176
            aconst_null
            areturn
         8: .line 179
      StackMap locals:
      StackMap stack:
            lload 1 /* len */
            l2i
            istore 3 /* size */
        start local 3 // int size
         9: .line 180
            iload 3 /* size */
            newarray 8
            astore 4 /* result */
        start local 4 // byte[] result
        10: .line 182
            iconst_0
            istore 5 /* pos */
        start local 5 // int pos
        11: .line 183
            aconst_null
            astore 6
            aconst_null
            astore 7
        12: aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getJarInputStreamWrapper:()Lorg/apache/catalina/webresources/AbstractArchiveResource$JarInputStreamWrapper;
            astore 8 /* jisw */
        start local 8 // org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper jisw
        13: .line 184
            aload 8 /* jisw */
            ifnonnull 20
        14: .line 198
            aload 8 /* jisw */
            ifnull 15
            aload 8 /* jisw */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper.close:()V
        15: .line 186
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResource long int byte[] int java.lang.Throwable java.lang.Throwable org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper
      StackMap stack:
            aconst_null
            areturn
        16: .line 189
      StackMap locals:
      StackMap stack:
            aload 8 /* jisw */
            aload 4 /* result */
            iload 5 /* pos */
            iload 3 /* size */
            iload 5 /* pos */
            isub
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper.read:([BII)I
            istore 9 /* n */
        start local 9 // int n
        17: .line 190
            iload 9 /* n */
            ifge 19
        18: .line 191
            goto 21
        19: .line 193
      StackMap locals: int
      StackMap stack:
            iload 5 /* pos */
            iload 9 /* n */
            iadd
            istore 5 /* pos */
        end local 9 // int n
        20: .line 188
      StackMap locals:
      StackMap stack:
            iload 5 /* pos */
            iload 3 /* size */
            if_icmplt 16
        21: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 8 /* jisw */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper.getCertificates:()[Ljava/security/cert/Certificate;
            putfield org.apache.catalina.webresources.AbstractArchiveResource.certificates:[Ljava/security/cert/Certificate;
        22: .line 197
            aload 0 /* this */
            iconst_1
            putfield org.apache.catalina.webresources.AbstractArchiveResource.readCerts:Z
        23: .line 198
            aload 8 /* jisw */
            ifnull 37
            aload 8 /* jisw */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper.close:()V
            goto 37
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 6
            aload 8 /* jisw */
            ifnull 25
            aload 8 /* jisw */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper.close:()V
        end local 8 // org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper jisw
      StackMap locals:
      StackMap stack:
        25: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 7
            aload 6
            ifnonnull 27
            aload 7
            astore 6
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 6
            aload 7
            if_acmpeq 28
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 6
            athrow
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResource long int byte[] int
      StackMap stack: java.io.IOException
        29: astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        30: .line 199
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getLog:()Lorg/apache/juli/logging/Log;
            invokeinterface org.apache.juli.logging.Log.isDebugEnabled:()Z
            ifeq 36
        31: .line 200
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getLog:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.webresources.AbstractArchiveResource.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "abstractResource.getContentFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        32: .line 201
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getWebappPath:()Ljava/lang/String;
            aastore
        33: .line 200
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        34: .line 201
            aload 6 /* ioe */
        35: .line 200
            invokeinterface org.apache.juli.logging.Log.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        36: .line 204
      StackMap locals: java.io.IOException
      StackMap stack:
            aconst_null
            areturn
        end local 6 // java.io.IOException ioe
        37: .line 207
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 5 // int pos
        end local 4 // byte[] result
        end local 3 // int size
        end local 1 // long len
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   38     0    this  Lorg/apache/catalina/webresources/AbstractArchiveResource;
            1   38     1     len  J
            9   38     3    size  I
           10   38     4  result  [B
           11   38     5     pos  I
           13   25     8    jisw  Lorg/apache/catalina/webresources/AbstractArchiveResource$JarInputStreamWrapper;
           17   20     9       n  I
           30   37     6     ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          13    14      24  any
          16    23      24  any
          12    15      26  any
          16    26      26  any
          11    15      29  Class java.io.IOException
          16    29      29  Class java.io.IOException

  public java.security.cert.Certificate[] getCertificates();
    descriptor: ()[Ljava/security/cert/Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 213
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.readCerts:Z
            ifne 2
         1: .line 215
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
         2: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.certificates:[Ljava/security/cert/Certificate;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  public java.util.jar.Manifest getManifest();
    descriptor: ()Ljava/util/jar/Manifest;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 222
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResource.archiveResourceSet:Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getManifest:()Ljava/util/jar/Manifest;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  protected final java.io.InputStream doGetInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
         0: .line 227
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.isDirectory:()Z
            ifeq 2
         1: .line 228
            aconst_null
            areturn
         2: .line 230
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResource.getJarInputStreamWrapper:()Lorg/apache/catalina/webresources/AbstractArchiveResource$JarInputStreamWrapper;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResource;

  protected abstract org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper getJarInputStreamWrapper();
    descriptor: ()Lorg/apache/catalina/webresources/AbstractArchiveResource$JarInputStreamWrapper;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
}
SourceFile: "AbstractArchiveResource.java"
NestMembers:
  org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper
InnerClasses:
  protected JarInputStreamWrapper = org.apache.catalina.webresources.AbstractArchiveResource$JarInputStreamWrapper of org.apache.catalina.webresources.AbstractArchiveResource