public abstract class org.apache.catalina.webresources.AbstractArchiveResourceSet extends org.apache.catalina.webresources.AbstractResourceSet
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.catalina.webresources.AbstractArchiveResourceSet
  super_class: org.apache.catalina.webresources.AbstractResourceSet
{
  private java.net.URL baseUrl;
    descriptor: Ljava/net/URL;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String baseUrlString;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.jar.JarFile archive;
    descriptor: Ljava/util/jar/JarFile;
    flags: (0x0002) ACC_PRIVATE

  protected java.util.Map<java.lang.String, java.util.jar.JarEntry> archiveEntries;
    descriptor: Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/jar/JarEntry;>;

  protected final java.lang.Object archiveLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private long archiveUseCount;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private org.apache.catalina.webresources.JarContents jarContents;
    descriptor: Lorg/apache/catalina/webresources/JarContents;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
         0: .line 35
            aload 0 /* this */
            invokespecial org.apache.catalina.webresources.AbstractResourceSet.<init>:()V
         1: .line 39
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
         2: .line 40
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveEntries:Ljava/util/Map;
         3: .line 41
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveLock:Ljava/lang/Object;
         4: .line 42
            aload 0 /* this */
            lconst_0
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveUseCount:J
         5: .line 35
            return
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;

  protected final void setBaseUrl(java.net.URL);
    descriptor: (Ljava/net/URL;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
        start local 1 // java.net.URL baseUrl
         0: .line 46
            aload 0 /* this */
            aload 1 /* baseUrl */
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.baseUrl:Ljava/net/URL;
         1: .line 47
            aload 1 /* baseUrl */
            ifnonnull 4
         2: .line 48
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.baseUrlString:Ljava/lang/String;
         3: .line 49
            goto 5
         4: .line 50
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* baseUrl */
            invokevirtual java.net.URL.toString:()Ljava/lang/String;
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.baseUrlString:Ljava/lang/String;
         5: .line 52
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.net.URL baseUrl
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0    6     1  baseUrl  Ljava/net/URL;
    MethodParameters:
         Name  Flags
      baseUrl  

  public final java.net.URL getBaseUrl();
    descriptor: ()Ljava/net/URL;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
         0: .line 56
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.baseUrl:Ljava/net/URL;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;

  protected final java.lang.String getBaseUrlString();
    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.AbstractArchiveResourceSet this
         0: .line 60
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.baseUrlString:Ljava/lang/String;
            areturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;

  public final java.lang.String[] list(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
        start local 1 // java.lang.String path
         0: .line 66
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 67
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 2 /* webAppMount */
        start local 2 // java.lang.String webAppMount
         2: .line 69
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* result */
        start local 3 // java.util.ArrayList result
         3: .line 70
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 26
         4: .line 72
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getInternalPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 71
            astore 4 /* pathInJar */
        start local 4 // java.lang.String pathInJar
         6: .line 74
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            ifle 8
            aload 4 /* pathInJar */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 8
         7: .line 75
            aload 4 /* pathInJar */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* pathInJar */
         8: .line 77
      StackMap locals: java.lang.String java.util.ArrayList java.lang.String
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getArchiveEntries:(Z)Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 24
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String java.util.ArrayList java.lang.String top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* name */
        start local 5 // java.lang.String name
        10: .line 78
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            if_icmple 24
        11: .line 79
            aload 5 /* name */
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
        12: .line 80
            aload 5 /* name */
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 17
        13: .line 81
            aload 5 /* name */
        14: .line 82
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
        15: .line 81
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* name */
        16: .line 83
            goto 18
        17: .line 84
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String java.util.ArrayList java.lang.String java.lang.String java.util.Iterator
      StackMap stack:
            aload 5 /* name */
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 5 /* name */
        18: .line 86
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 20
        19: .line 87
            goto 24
        20: .line 89
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 22
        21: .line 90
            aload 5 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 5 /* name */
        22: .line 92
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            ifle 24
            aload 5 /* name */
            bipush 47
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_m1
            if_icmpne 24
        23: .line 93
            aload 3 /* result */
            aload 5 /* name */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.lang.String name
        24: .line 77
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String java.util.ArrayList java.lang.String top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 4 // java.lang.String pathInJar
        25: .line 97
            goto 35
        26: .line 98
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String java.util.ArrayList
      StackMap stack:
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 28
        27: .line 99
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
        28: .line 101
      StackMap locals:
      StackMap stack:
            aload 2 /* webAppMount */
            aload 1 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 35
        29: .line 102
            aload 2 /* webAppMount */
            bipush 47
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* i */
        start local 4 // int i
        30: .line 103
            iload 4 /* i */
            iconst_m1
            if_icmpne 32
        31: .line 104
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 2 /* webAppMount */
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aastore
            areturn
        32: .line 106
      StackMap locals: int
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
        33: .line 107
            aload 2 /* webAppMount */
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        34: .line 106
            areturn
        end local 4 // int i
        35: .line 111
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            iconst_0
            anewarray java.lang.String
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 3 // java.util.ArrayList result
        end local 2 // java.lang.String webAppMount
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   36     0         this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0   36     1         path  Ljava/lang/String;
            2   36     2  webAppMount  Ljava/lang/String;
            3   36     3       result  Ljava/util/ArrayList<Ljava/lang/String;>;
            6   25     4    pathInJar  Ljava/lang/String;
           10   24     5         name  Ljava/lang/String;
           30   35     4            i  I
    MethodParameters:
      Name  Flags
      path  

  public final java.util.Set<java.lang.String> listWebAppPaths(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
        start local 1 // java.lang.String path
         0: .line 116
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 117
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 2 /* webAppMount */
        start local 2 // java.lang.String webAppMount
         2: .line 119
            new org.apache.catalina.util.ResourceSet
            dup
            invokespecial org.apache.catalina.util.ResourceSet.<init>:()V
            astore 3 /* result */
        start local 3 // org.apache.catalina.util.ResourceSet result
         3: .line 120
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 20
         4: .line 122
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getInternalPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 121
            astore 4 /* pathInJar */
        start local 4 // java.lang.String pathInJar
         6: .line 125
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            ifle 11
         7: .line 126
            aload 4 /* pathInJar */
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 9
         8: .line 127
            new java.lang.StringBuilder
            dup
            aload 4 /* pathInJar */
            iconst_1
            invokevirtual java.lang.String.substring:(I)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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* pathInJar */
         9: .line 129
      StackMap locals: java.lang.String org.apache.catalina.util.ResourceSet java.lang.String
      StackMap stack:
            aload 4 /* pathInJar */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 11
        10: .line 130
            aload 4 /* pathInJar */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* pathInJar */
        11: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getArchiveEntries:(Z)Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String org.apache.catalina.util.ResourceSet java.lang.String top java.util.Iterator
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* name */
        start local 5 // java.lang.String name
        13: .line 135
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            if_icmple 18
            aload 5 /* name */
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 18
        14: .line 136
            aload 5 /* name */
            bipush 47
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 7 /* nextSlash */
        start local 7 // int nextSlash
        15: .line 137
            iload 7 /* nextSlash */
            iconst_m1
            if_icmpeq 17
            iload 7 /* nextSlash */
            aload 5 /* name */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            if_icmpeq 17
        16: .line 138
            aload 5 /* name */
            iconst_0
            iload 7 /* nextSlash */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 5 /* name */
        17: .line 140
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String org.apache.catalina.util.ResourceSet java.lang.String java.lang.String java.util.Iterator int
      StackMap stack:
            aload 3 /* result */
            new java.lang.StringBuilder
            dup
            aload 2 /* webAppMount */
            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 5 /* name */
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getInternalPath:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.util.ResourceSet.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // int nextSlash
        end local 5 // java.lang.String name
        18: .line 134
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String org.apache.catalina.util.ResourceSet java.lang.String top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        end local 4 // java.lang.String pathInJar
        19: .line 143
            goto 28
        20: .line 144
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.String java.lang.String org.apache.catalina.util.ResourceSet
      StackMap stack:
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 22
        21: .line 145
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
        22: .line 147
      StackMap locals:
      StackMap stack:
            aload 2 /* webAppMount */
            aload 1 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 28
        23: .line 148
            aload 2 /* webAppMount */
            bipush 47
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 4 /* i */
        start local 4 // int i
        24: .line 149
            iload 4 /* i */
            iconst_m1
            if_icmpne 27
        25: .line 150
            aload 3 /* result */
            new java.lang.StringBuilder
            dup
            aload 2 /* webAppMount */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.util.ResourceSet.add:(Ljava/lang/Object;)Z
            pop
        26: .line 151
            goto 28
        27: .line 152
      StackMap locals: int
      StackMap stack:
            aload 3 /* result */
            aload 2 /* webAppMount */
            iconst_0
            iload 4 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual org.apache.catalina.util.ResourceSet.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // int i
        28: .line 156
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            iconst_1
            invokevirtual org.apache.catalina.util.ResourceSet.setLocked:(Z)V
        29: .line 157
            aload 3 /* result */
            areturn
        end local 3 // org.apache.catalina.util.ResourceSet result
        end local 2 // java.lang.String webAppMount
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0         this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0   30     1         path  Ljava/lang/String;
            2   30     2  webAppMount  Ljava/lang/String;
            3   30     3       result  Lorg/apache/catalina/util/ResourceSet<Ljava/lang/String;>;
            6   19     4    pathInJar  Ljava/lang/String;
           13   18     5         name  Ljava/lang/String;
           15   18     7    nextSlash  I
           24   28     4            i  I
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      path  

  protected abstract java.util.Map<java.lang.String, java.util.jar.JarEntry> getArchiveEntries(boolean);
    descriptor: (Z)Ljava/util/Map;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Z)Ljava/util/Map<Ljava/lang/String;Ljava/util/jar/JarEntry;>;
    MethodParameters:
        Name  Flags
      single  

  protected abstract java.util.jar.JarEntry getArchiveEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/jar/JarEntry;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      pathInArchive  

  public final boolean mkdir(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
        start local 1 // java.lang.String path
         0: .line 190
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 192
            iconst_0
            ireturn
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0    2     1  path  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      path  

  public final boolean write(java.lang.String, java.io.InputStream, boolean);
    descriptor: (Ljava/lang/String;Ljava/io/InputStream;Z)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
        start local 1 // java.lang.String path
        start local 2 // java.io.InputStream is
        start local 3 // boolean overwrite
         0: .line 197
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 199
            aload 2 /* is */
            ifnonnull 5
         2: .line 200
            new java.lang.NullPointerException
            dup
         3: .line 201
            getstatic org.apache.catalina.webresources.AbstractArchiveResourceSet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "dirResourceSet.writeNpe"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         4: .line 200
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 204
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // boolean overwrite
        end local 2 // java.io.InputStream is
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0    6     1       path  Ljava/lang/String;
            0    6     2         is  Ljava/io/InputStream;
            0    6     3  overwrite  Z
    MethodParameters:
           Name  Flags
      path       
      is         
      overwrite  

  public final org.apache.catalina.WebResource getResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/catalina/WebResource;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
        start local 1 // java.lang.String path
         0: .line 209
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 210
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 2 /* webAppMount */
        start local 2 // java.lang.String webAppMount
         2: .line 211
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
            astore 3 /* root */
        start local 3 // org.apache.catalina.WebResourceRoot root
         3: .line 217
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.jarContents:Lorg/apache/catalina/webresources/JarContents;
            ifnull 5
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.jarContents:Lorg/apache/catalina/webresources/JarContents;
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual org.apache.catalina.webresources.JarContents.mightContainResource:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 5
         4: .line 218
            new org.apache.catalina.webresources.EmptyResource
            dup
            aload 3 /* root */
            aload 1 /* path */
            invokespecial org.apache.catalina.webresources.EmptyResource.<init>:(Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;)V
            areturn
         5: .line 239
      StackMap locals: java.lang.String org.apache.catalina.WebResourceRoot
      StackMap stack:
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 37
         6: .line 240
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getInternalPath:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* path */
         7: .line 241
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
         8: .line 240
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* pathInJar */
        start local 4 // java.lang.String pathInJar
         9: .line 243
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            ifle 11
            aload 4 /* pathInJar */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 11
        10: .line 244
            aload 4 /* pathInJar */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* pathInJar */
        11: .line 246
      StackMap locals: java.lang.String
      StackMap stack:
            aload 4 /* pathInJar */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        12: .line 249
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 14
        13: .line 250
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
        14: .line 252
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.webresources.JarResourceRoot
            dup
            aload 3 /* root */
            new java.io.File
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getBase:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
        15: .line 253
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.baseUrlString:Ljava/lang/String;
            aload 1 /* path */
        16: .line 252
            invokespecial org.apache.catalina.webresources.JarResourceRoot.<init>:(Lorg/apache/catalina/WebResourceRoot;Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V
            areturn
        17: .line 255
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* jarEntry */
        start local 5 // java.util.jar.JarEntry jarEntry
        18: .line 256
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.isMultiRelease:()Z
            ifeq 21
        19: .line 258
            aload 0 /* this */
            aload 4 /* pathInJar */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getArchiveEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 5 /* jarEntry */
        20: .line 259
            goto 34
        21: .line 260
      StackMap locals: java.util.jar.JarEntry
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getArchiveEntries:(Z)Ljava/util/Map;
            astore 6 /* jarEntries */
        start local 6 // java.util.Map jarEntries
        22: .line 261
            aload 4 /* pathInJar */
            aload 4 /* pathInJar */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 29
        23: .line 262
            aload 6 /* jarEntries */
            ifnonnull 26
        24: .line 263
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 4 /* pathInJar */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getArchiveEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 5 /* jarEntry */
        25: .line 264
            goto 27
        26: .line 265
      StackMap locals: java.util.Map
      StackMap stack:
            aload 6 /* jarEntries */
            new java.lang.StringBuilder
            dup
            aload 4 /* pathInJar */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.jar.JarEntry
            astore 5 /* jarEntry */
        27: .line 267
      StackMap locals:
      StackMap stack:
            aload 5 /* jarEntry */
            ifnull 29
        28: .line 268
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* path */
        29: .line 271
      StackMap locals:
      StackMap stack:
            aload 5 /* jarEntry */
            ifnonnull 34
        30: .line 272
            aload 6 /* jarEntries */
            ifnonnull 33
        31: .line 273
            aload 0 /* this */
            aload 4 /* pathInJar */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getArchiveEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 5 /* jarEntry */
        32: .line 274
            goto 34
        33: .line 275
      StackMap locals:
      StackMap stack:
            aload 6 /* jarEntries */
            aload 4 /* pathInJar */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.jar.JarEntry
            astore 5 /* jarEntry */
        end local 6 // java.util.Map jarEntries
        34: .line 279
      StackMap locals:
      StackMap stack:
            aload 5 /* jarEntry */
            ifnonnull 36
        35: .line 280
            new org.apache.catalina.webresources.EmptyResource
            dup
            aload 3 /* root */
            aload 1 /* path */
            invokespecial org.apache.catalina.webresources.EmptyResource.<init>:(Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;)V
            areturn
        36: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* jarEntry */
            aload 1 /* path */
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getManifest:()Ljava/util/jar/Manifest;
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.createArchiveResource:(Ljava/util/jar/JarEntry;Ljava/lang/String;Ljava/util/jar/Manifest;)Lorg/apache/catalina/WebResource;
            areturn
        end local 5 // java.util.jar.JarEntry jarEntry
        end local 4 // java.lang.String pathInJar
        37: .line 286
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.webresources.EmptyResource
            dup
            aload 3 /* root */
            aload 1 /* path */
            invokespecial org.apache.catalina.webresources.EmptyResource.<init>:(Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;)V
            areturn
        end local 3 // org.apache.catalina.WebResourceRoot root
        end local 2 // java.lang.String webAppMount
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0         this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0   38     1         path  Ljava/lang/String;
            2   38     2  webAppMount  Ljava/lang/String;
            3   38     3         root  Lorg/apache/catalina/WebResourceRoot;
            9   37     4    pathInJar  Ljava/lang/String;
           18   37     5     jarEntry  Ljava/util/jar/JarEntry;
           22   34     6   jarEntries  Ljava/util/Map<Ljava/lang/String;Ljava/util/jar/JarEntry;>;
    MethodParameters:
      Name  Flags
      path  

  protected abstract boolean isMultiRelease();
    descriptor: ()Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract org.apache.catalina.WebResource createArchiveResource(java.util.jar.JarEntry, java.lang.String, java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/JarEntry;Ljava/lang/String;Ljava/util/jar/Manifest;)Lorg/apache/catalina/WebResource;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      jarEntry    
      webAppPath  
      manifest    

  public final boolean isReadOnly();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
         0: .line 297
            iconst_1
            ireturn
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;

  public void setReadOnly(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
        start local 1 // boolean readOnly
         0: .line 302
            iload 1 /* readOnly */
            ifeq 2
         1: .line 304
            return
         2: .line 307
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         3: .line 308
            getstatic org.apache.catalina.webresources.AbstractArchiveResourceSet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "abstractArchiveResourceSet.setReadOnlyFalse"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         4: .line 307
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // boolean readOnly
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            0    5     1  readOnly  Z
    MethodParameters:
          Name  Flags
      readOnly  

  protected java.util.jar.JarFile openJarFile();
    descriptor: ()Ljava/util/jar/JarFile;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
         0: .line 312
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 313
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
            ifnonnull 6
         2: .line 314
            aload 0 /* this */
            invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getBase:()Ljava/lang/String;
            invokevirtual org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance:(Ljava/lang/String;)Ljava/util/jar/JarFile;
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
         3: .line 315
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.AbstractArchiveResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
            astore 2 /* root */
        start local 2 // org.apache.catalina.WebResourceRoot root
         4: .line 316
            aload 2 /* root */
            invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
            ifnull 6
            aload 2 /* root */
            invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getUseBloomFilterForArchives:()Z
            ifeq 6
         5: .line 317
            aload 0 /* this */
            new org.apache.catalina.webresources.JarContents
            dup
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
            invokespecial org.apache.catalina.webresources.JarContents.<init>:(Ljava/util/jar/JarFile;)V
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.jarContents:Lorg/apache/catalina/webresources/JarContents;
        end local 2 // org.apache.catalina.WebResourceRoot root
         6: .line 320
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveUseCount:J
            lconst_1
            ladd
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveUseCount:J
         7: .line 321
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
            aload 1
            monitorexit
         8: areturn
         9: .line 312
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
            4    6     2  root  Lorg/apache/catalina/WebResourceRoot;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Exceptions:
      throws java.io.IOException

  protected void closeJarFile();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
         0: .line 326
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 327
            aload 0 /* this */
            dup
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveUseCount:J
            lconst_1
            lsub
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveUseCount:J
         2: .line 326
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 329
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void gc();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
         0: .line 333
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 334
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
            ifnull 8
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveUseCount:J
            lconst_0
            lcmp
            ifne 8
         2: .line 336
            aload 0 /* this */
            getfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
            invokevirtual java.util.jar.JarFile.close:()V
         3: .line 337
            goto 5
      StackMap locals: org.apache.catalina.webresources.AbstractArchiveResourceSet java.lang.Object
      StackMap stack: java.io.IOException
         4: pop
         5: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archive:Ljava/util/jar/JarFile;
         6: .line 341
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.archiveEntries:Ljava/util/Map;
         7: .line 342
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.webresources.AbstractArchiveResourceSet.jarContents:Lorg/apache/catalina/webresources/JarContents;
         8: .line 333
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 345
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.webresources.AbstractArchiveResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
           1     9      10  any
          10    11      10  any
}
SourceFile: "AbstractArchiveResourceSet.java"