public class org.apache.catalina.webresources.JarWarResourceSet extends org.apache.catalina.webresources.AbstractArchiveResourceSet
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.webresources.JarWarResourceSet
  super_class: org.apache.catalina.webresources.AbstractArchiveResourceSet
{
  private final java.lang.String archivePath;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.apache.catalina.WebResourceRoot, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=6
        start local 0 // org.apache.catalina.webresources.JarWarResourceSet this
        start local 1 // org.apache.catalina.WebResourceRoot root
        start local 2 // java.lang.String webAppMount
        start local 3 // java.lang.String base
        start local 4 // java.lang.String archivePath
        start local 5 // java.lang.String internalPath
         0: .line 69
            aload 0 /* this */
            invokespecial org.apache.catalina.webresources.AbstractArchiveResourceSet.<init>:()V
         1: .line 72
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.setRoot:(Lorg/apache/catalina/WebResourceRoot;)V
         2: .line 73
            aload 0 /* this */
            aload 2 /* webAppMount */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.setWebAppMount:(Ljava/lang/String;)V
         3: .line 74
            aload 0 /* this */
            aload 3 /* base */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.setBase:(Ljava/lang/String;)V
         4: .line 75
            aload 0 /* this */
            aload 4 /* archivePath */
            putfield org.apache.catalina.webresources.JarWarResourceSet.archivePath:Ljava/lang/String;
         5: .line 76
            aload 0 /* this */
            aload 5 /* internalPath */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.setInternalPath:(Ljava/lang/String;)V
         6: .line 78
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
            invokeinterface org.apache.catalina.WebResourceRoot.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 11
         7: .line 80
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.start:()V
         8: .line 81
            goto 11
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet org.apache.catalina.WebResourceRoot java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: org.apache.catalina.LifecycleException
         9: astore 6 /* e */
        start local 6 // org.apache.catalina.LifecycleException e
        10: .line 82
            new java.lang.IllegalStateException
            dup
            aload 6 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // org.apache.catalina.LifecycleException e
        11: .line 85
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.String internalPath
        end local 4 // java.lang.String archivePath
        end local 3 // java.lang.String base
        end local 2 // java.lang.String webAppMount
        end local 1 // org.apache.catalina.WebResourceRoot root
        end local 0 // org.apache.catalina.webresources.JarWarResourceSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lorg/apache/catalina/webresources/JarWarResourceSet;
            0   12     1          root  Lorg/apache/catalina/WebResourceRoot;
            0   12     2   webAppMount  Ljava/lang/String;
            0   12     3          base  Ljava/lang/String;
            0   12     4   archivePath  Ljava/lang/String;
            0   12     5  internalPath  Ljava/lang/String;
           10   11     6             e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
           7     8       9  Class org.apache.catalina.LifecycleException
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
              Name  Flags
      root          
      webAppMount   
      base          
      archivePath   
      internalPath  

  protected 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: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.apache.catalina.webresources.JarWarResourceSet this
        start local 1 // java.util.jar.JarEntry jarEntry
        start local 2 // java.lang.String webAppPath
        start local 3 // java.util.jar.Manifest manifest
         0: .line 90
            new org.apache.catalina.webresources.JarWarResource
            dup
            aload 0 /* this */
            aload 2 /* webAppPath */
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.getBaseUrlString:()Ljava/lang/String;
            aload 1 /* jarEntry */
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archivePath:Ljava/lang/String;
            invokespecial org.apache.catalina.webresources.JarWarResource.<init>:(Lorg/apache/catalina/webresources/AbstractArchiveResourceSet;Ljava/lang/String;Ljava/lang/String;Ljava/util/jar/JarEntry;Ljava/lang/String;)V
            areturn
        end local 3 // java.util.jar.Manifest manifest
        end local 2 // java.lang.String webAppPath
        end local 1 // java.util.jar.JarEntry jarEntry
        end local 0 // org.apache.catalina.webresources.JarWarResourceSet this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/catalina/webresources/JarWarResourceSet;
            0    1     1    jarEntry  Ljava/util/jar/JarEntry;
            0    1     2  webAppPath  Ljava/lang/String;
            0    1     3    manifest  Ljava/util/jar/Manifest;
    MethodParameters:
            Name  Flags
      jarEntry    
      webAppPath  
      manifest    

  protected java.util.Map<java.lang.String, java.util.jar.JarEntry> getArchiveEntries(boolean);
    descriptor: (Z)Ljava/util/Map;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=14, args_size=2
        start local 0 // org.apache.catalina.webresources.JarWarResourceSet this
        start local 1 // boolean single
         0: .line 102
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 103
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
            ifnonnull 54
         2: .line 104
            aconst_null
            astore 3 /* warFile */
        start local 3 // java.util.jar.JarFile warFile
         3: .line 105
            aconst_null
            astore 4 /* jarFileIs */
        start local 4 // java.io.InputStream jarFileIs
         4: .line 106
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
         5: .line 107
            iconst_0
            istore 5 /* multiRelease */
        start local 5 // boolean multiRelease
         6: .line 109
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.openJarFile:()Ljava/util/jar/JarFile;
            astore 3 /* warFile */
         7: .line 110
            aload 3 /* warFile */
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archivePath:Ljava/lang/String;
            invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 6 /* jarFileInWar */
        start local 6 // java.util.jar.JarEntry jarFileInWar
         8: .line 111
            aload 3 /* warFile */
            aload 6 /* jarFileInWar */
            invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 4 /* jarFileIs */
         9: .line 113
            aconst_null
            astore 7
            aconst_null
            astore 8
        10: new org.apache.catalina.webresources.TomcatJarInputStream
            dup
            aload 4 /* jarFileIs */
            invokespecial org.apache.catalina.webresources.TomcatJarInputStream.<init>:(Ljava/io/InputStream;)V
            astore 9 /* jarIs */
        start local 9 // org.apache.catalina.webresources.TomcatJarInputStream jarIs
        11: .line 114
            aload 9 /* jarIs */
            invokevirtual org.apache.catalina.webresources.TomcatJarInputStream.getNextJarEntry:()Ljava/util/jar/JarEntry;
            astore 10 /* entry */
        start local 10 // java.util.jar.JarEntry entry
        12: .line 115
            goto 15
        13: .line 116
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet int java.lang.Object java.util.jar.JarFile java.io.InputStream int java.util.jar.JarEntry java.lang.Throwable java.lang.Throwable org.apache.catalina.webresources.TomcatJarInputStream java.util.jar.JarEntry
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
            aload 10 /* entry */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            aload 10 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 117
            aload 9 /* jarIs */
            invokevirtual org.apache.catalina.webresources.TomcatJarInputStream.getNextJarEntry:()Ljava/util/jar/JarEntry;
            astore 10 /* entry */
        15: .line 115
      StackMap locals:
      StackMap stack:
            aload 10 /* entry */
            ifnonnull 13
        16: .line 119
            aload 9 /* jarIs */
            invokevirtual org.apache.catalina.webresources.TomcatJarInputStream.getManifest:()Ljava/util/jar/Manifest;
            astore 11 /* m */
        start local 11 // java.util.jar.Manifest m
        17: .line 120
            aload 0 /* this */
            aload 11 /* m */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.setManifest:(Ljava/util/jar/Manifest;)V
        18: .line 121
            aload 11 /* m */
            ifnull 22
            invokestatic org.apache.tomcat.util.compat.JreCompat.isJre9Available:()Z
            ifeq 22
        19: .line 122
            aload 11 /* m */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            ldc "Multi-Release"
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/lang/String;)Ljava/lang/String;
            astore 12 /* value */
        start local 12 // java.lang.String value
        20: .line 123
            aload 12 /* value */
            ifnull 22
        21: .line 124
            aload 12 /* value */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 5 /* multiRelease */
        end local 12 // java.lang.String value
        22: .line 133
      StackMap locals: java.util.jar.Manifest
      StackMap stack:
            aload 9 /* jarIs */
            invokevirtual org.apache.catalina.webresources.TomcatJarInputStream.getMetaInfEntry:()Ljava/util/jar/JarEntry;
            astore 10 /* entry */
        23: .line 134
            aload 10 /* entry */
            ifnull 25
        24: .line 135
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
            aload 10 /* entry */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            aload 10 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 137
      StackMap locals:
      StackMap stack:
            aload 9 /* jarIs */
            invokevirtual org.apache.catalina.webresources.TomcatJarInputStream.getManifestEntry:()Ljava/util/jar/JarEntry;
            astore 10 /* entry */
        26: .line 138
            aload 10 /* entry */
            ifnull 28
        27: .line 139
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
            aload 10 /* entry */
            invokevirtual java.util.jar.JarEntry.getName:()Ljava/lang/String;
            aload 10 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // java.util.jar.Manifest m
        end local 10 // java.util.jar.JarEntry entry
        28: .line 141
      StackMap locals:
      StackMap stack:
            aload 9 /* jarIs */
            ifnull 34
            aload 9 /* jarIs */
            invokevirtual org.apache.catalina.webresources.TomcatJarInputStream.close:()V
            goto 34
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: astore 7
            aload 9 /* jarIs */
            ifnull 30
            aload 9 /* jarIs */
            invokevirtual org.apache.catalina.webresources.TomcatJarInputStream.close:()V
        end local 9 // org.apache.catalina.webresources.TomcatJarInputStream jarIs
      StackMap locals:
      StackMap stack:
        30: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: astore 8
            aload 7
            ifnonnull 32
            aload 8
            astore 7
            goto 33
      StackMap locals:
      StackMap stack:
        32: aload 7
            aload 8
            if_acmpeq 33
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        33: aload 7
            athrow
        34: .line 142
      StackMap locals:
      StackMap stack:
            iload 5 /* multiRelease */
            ifeq 48
        35: .line 143
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.processArchivesEntriesForMultiRelease:()V
        end local 6 // java.util.jar.JarEntry jarFileInWar
        36: .line 145
            goto 48
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet int java.lang.Object java.util.jar.JarFile java.io.InputStream int
      StackMap stack: java.io.IOException
        37: astore 6 /* ioe */
        start local 6 // java.io.IOException ioe
        38: .line 147
            aload 0 /* this */
            aconst_null
            putfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
        39: .line 148
            new java.lang.IllegalStateException
            dup
            aload 6 /* ioe */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.io.IOException ioe
        40: .line 149
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        41: .line 150
            aload 3 /* warFile */
            ifnull 43
        42: .line 151
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.closeJarFile:()V
        43: .line 153
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet int java.lang.Object java.util.jar.JarFile java.io.InputStream int top top top top top top top java.lang.Throwable
      StackMap stack:
            aload 4 /* jarFileIs */
            ifnull 47
        44: .line 155
            aload 4 /* jarFileIs */
            invokevirtual java.io.InputStream.close:()V
        45: .line 156
            goto 47
      StackMap locals:
      StackMap stack: java.io.IOException
        46: pop
        47: .line 160
      StackMap locals:
      StackMap stack:
            aload 13
            athrow
        48: .line 150
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet int java.lang.Object java.util.jar.JarFile java.io.InputStream int
      StackMap stack:
            aload 3 /* warFile */
            ifnull 50
        49: .line 151
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.closeJarFile:()V
        50: .line 153
      StackMap locals:
      StackMap stack:
            aload 4 /* jarFileIs */
            ifnull 54
        51: .line 155
            aload 4 /* jarFileIs */
            invokevirtual java.io.InputStream.close:()V
        52: .line 156
            goto 54
      StackMap locals:
      StackMap stack: java.io.IOException
        53: pop
        end local 5 // boolean multiRelease
        end local 4 // java.io.InputStream jarFileIs
        end local 3 // java.util.jar.JarFile warFile
        54: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
            aload 2
            monitorexit
        55: areturn
        56: .line 102
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        57: athrow
        end local 1 // boolean single
        end local 0 // org.apache.catalina.webresources.JarWarResourceSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   58     0          this  Lorg/apache/catalina/webresources/JarWarResourceSet;
            0   58     1        single  Z
            3   54     3       warFile  Ljava/util/jar/JarFile;
            4   54     4     jarFileIs  Ljava/io/InputStream;
            6   54     5  multiRelease  Z
            8   36     6  jarFileInWar  Ljava/util/jar/JarEntry;
           11   30     9         jarIs  Lorg/apache/catalina/webresources/TomcatJarInputStream;
           12   28    10         entry  Ljava/util/jar/JarEntry;
           17   28    11             m  Ljava/util/jar/Manifest;
           20   22    12         value  Ljava/lang/String;
           38   40     6           ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          11    28      29  any
          10    31      31  any
           6    36      37  Class java.io.IOException
           6    40      40  any
          44    45      46  Class java.io.IOException
          51    52      53  Class java.io.IOException
           1    55      56  any
          56    57      56  any
    Signature: (Z)Ljava/util/Map<Ljava/lang/String;Ljava/util/jar/JarEntry;>;
    MethodParameters:
        Name  Flags
      single  

  protected void processArchivesEntriesForMultiRelease();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=10, args_size=1
        start local 0 // org.apache.catalina.webresources.JarWarResourceSet this
         0: .line 169
            invokestatic org.apache.tomcat.util.compat.JreCompat.getInstance:()Lorg/apache/tomcat/util/compat/JreCompat;
            invokevirtual org.apache.tomcat.util.compat.JreCompat.jarFileRuntimeMajorVersion:()I
            istore 1 /* targetVersion */
        start local 1 // int targetVersion
         1: .line 171
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* versionedEntries */
        start local 2 // java.util.Map versionedEntries
         2: .line 172
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         3: .line 173
            goto 23
         4: .line 174
      StackMap locals: int java.util.Map java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         5: .line 175
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* name */
        start local 5 // java.lang.String name
         6: .line 176
            aload 5 /* name */
            ldc "META-INF/versions/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
         7: .line 178
            aload 3 /* iter */
            invokeinterface java.util.Iterator.remove:()V
         8: .line 181
            aload 5 /* name */
            bipush 47
            bipush 18
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* i */
        start local 6 // int i
         9: .line 182
            iload 6 /* i */
            ifle 23
        10: .line 183
            aload 5 /* name */
            iload 6 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 7 /* baseName */
        start local 7 // java.lang.String baseName
        11: .line 184
            aload 5 /* name */
            bipush 18
            iload 6 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 8 /* version */
        start local 8 // int version
        12: .line 188
            iload 8 /* version */
            iload 1 /* targetVersion */
            if_icmpgt 23
        13: .line 189
            aload 2 /* versionedEntries */
            aload 7 /* baseName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry
            astore 9 /* versionedJarEntry */
        start local 9 // org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry versionedJarEntry
        14: .line 190
            aload 9 /* versionedJarEntry */
            ifnonnull 19
        15: .line 193
            aload 2 /* versionedEntries */
            aload 7 /* baseName */
        16: .line 194
            new org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry
            dup
            iload 8 /* version */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.jar.JarEntry
            invokespecial org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry.<init>:(ILjava/util/jar/JarEntry;)V
        17: .line 193
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        18: .line 195
            goto 23
        19: .line 198
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet int java.util.Map java.util.Iterator java.util.Map$Entry java.lang.String int java.lang.String int org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry
      StackMap stack:
            iload 8 /* version */
            aload 9 /* versionedJarEntry */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry.getVersion:()I
            if_icmple 23
        20: .line 201
            aload 2 /* versionedEntries */
            aload 7 /* baseName */
        21: .line 202
            new org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry
            dup
            iload 8 /* version */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.jar.JarEntry
            invokespecial org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry.<init>:(ILjava/util/jar/JarEntry;)V
        22: .line 201
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry versionedJarEntry
        end local 8 // int version
        end local 7 // java.lang.String baseName
        end local 6 // int i
        end local 5 // java.lang.String name
        end local 4 // java.util.Map$Entry entry
        23: .line 173
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet int java.util.Map java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        24: .line 210
            aload 2 /* versionedEntries */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 29
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet int java.util.Map java.util.Iterator top java.util.Iterator
      StackMap stack:
        25: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* versionedJarEntry */
        start local 4 // java.util.Map$Entry versionedJarEntry
        26: .line 211
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archiveEntries:Ljava/util/Map;
            aload 4 /* versionedJarEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
        27: .line 212
            aload 4 /* versionedJarEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry.getJarEntry:()Ljava/util/jar/JarEntry;
        28: .line 211
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.util.Map$Entry versionedJarEntry
        29: .line 210
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        30: .line 214
            return
        end local 3 // java.util.Iterator iter
        end local 2 // java.util.Map versionedEntries
        end local 1 // int targetVersion
        end local 0 // org.apache.catalina.webresources.JarWarResourceSet this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   31     0               this  Lorg/apache/catalina/webresources/JarWarResourceSet;
            1   31     1      targetVersion  I
            2   31     2   versionedEntries  Ljava/util/Map<Ljava/lang/String;Lorg/apache/catalina/webresources/JarWarResourceSet$VersionedJarEntry;>;
            3   31     3               iter  Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/jar/JarEntry;>;>;
            5   23     4              entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/jar/JarEntry;>;
            6   23     5               name  Ljava/lang/String;
            9   23     6                  i  I
           11   23     7           baseName  Ljava/lang/String;
           12   23     8            version  I
           14   23     9  versionedJarEntry  Lorg/apache/catalina/webresources/JarWarResourceSet$VersionedJarEntry;
           26   29     4  versionedJarEntry  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/apache/catalina/webresources/JarWarResourceSet$VersionedJarEntry;>;

  protected java.util.jar.JarEntry getArchiveEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/jar/JarEntry;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.catalina.webresources.JarWarResourceSet this
        start local 1 // java.lang.String pathInArchive
         0: .line 225
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.catalina.webresources.JarWarResourceSet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "jarWarResourceSet.codingError"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String pathInArchive
        end local 0 // org.apache.catalina.webresources.JarWarResourceSet this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/apache/catalina/webresources/JarWarResourceSet;
            0    1     1  pathInArchive  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      pathInArchive  

  protected boolean isMultiRelease();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.JarWarResourceSet this
         0: .line 233
            iconst_0
            ireturn
        end local 0 // org.apache.catalina.webresources.JarWarResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/catalina/webresources/JarWarResourceSet;

  protected void initInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // org.apache.catalina.webresources.JarWarResourceSet this
         0: .line 241
            aconst_null
            astore 1
            aconst_null
            astore 2
         1: new java.util.jar.JarFile
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.getBase:()Ljava/lang/String;
            invokespecial java.util.jar.JarFile.<init>:(Ljava/lang/String;)V
            astore 3 /* warFile */
        start local 3 // java.util.jar.JarFile warFile
         2: .line 242
            aload 3 /* warFile */
            aload 0 /* this */
            getfield org.apache.catalina.webresources.JarWarResourceSet.archivePath:Ljava/lang/String;
            invokevirtual java.util.jar.JarFile.getJarEntry:(Ljava/lang/String;)Ljava/util/jar/JarEntry;
            astore 4 /* jarFileInWar */
        start local 4 // java.util.jar.JarEntry jarFileInWar
         3: .line 243
            aload 3 /* warFile */
            aload 4 /* jarFileInWar */
            invokevirtual java.util.jar.JarFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
            astore 5 /* jarFileIs */
        start local 5 // java.io.InputStream jarFileIs
         4: .line 245
            aconst_null
            astore 6
            aconst_null
            astore 7
         5: new java.util.jar.JarInputStream
            dup
            aload 5 /* jarFileIs */
            invokespecial java.util.jar.JarInputStream.<init>:(Ljava/io/InputStream;)V
            astore 8 /* jarIs */
        start local 8 // java.util.jar.JarInputStream jarIs
         6: .line 246
            aload 0 /* this */
            aload 8 /* jarIs */
            invokevirtual java.util.jar.JarInputStream.getManifest:()Ljava/util/jar/Manifest;
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.setManifest:(Ljava/util/jar/Manifest;)V
         7: .line 247
            aload 8 /* jarIs */
            ifnull 13
            aload 8 /* jarIs */
            invokevirtual java.util.jar.JarInputStream.close:()V
            goto 13
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet java.lang.Throwable java.lang.Throwable java.util.jar.JarFile java.util.jar.JarEntry java.io.InputStream java.lang.Throwable java.lang.Throwable java.util.jar.JarInputStream
      StackMap stack: java.lang.Throwable
         8: astore 6
            aload 8 /* jarIs */
            ifnull 9
            aload 8 /* jarIs */
            invokevirtual java.util.jar.JarInputStream.close:()V
        end local 8 // java.util.jar.JarInputStream jarIs
      StackMap locals:
      StackMap stack:
         9: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 7
            aload 6
            ifnonnull 11
            aload 7
            astore 6
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 6
            aload 7
            if_acmpeq 12
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 6
            athrow
        end local 5 // java.io.InputStream jarFileIs
        end local 4 // java.util.jar.JarEntry jarFileInWar
        13: .line 248
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet java.lang.Throwable java.lang.Throwable java.util.jar.JarFile
      StackMap stack:
            aload 3 /* warFile */
            ifnull 21
            aload 3 /* warFile */
            invokevirtual java.util.jar.JarFile.close:()V
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 1
            aload 3 /* warFile */
            ifnull 15
            aload 3 /* warFile */
            invokevirtual java.util.jar.JarFile.close:()V
        end local 3 // java.util.jar.JarFile warFile
      StackMap locals:
      StackMap stack:
        15: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: astore 2
            aload 1
            ifnonnull 17
            aload 2
            astore 1
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 1
            aload 2
            if_acmpeq 18
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        18: aload 1
            athrow
      StackMap locals: org.apache.catalina.webresources.JarWarResourceSet
      StackMap stack: java.io.IOException
        19: astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
        20: .line 249
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* ioe */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException ioe
        21: .line 253
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.File
            dup
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.getBase:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.tomcat.util.buf.UriUtil.buildJarSafeUrl:(Ljava/io/File;)Ljava/net/URL;
            invokevirtual org.apache.catalina.webresources.JarWarResourceSet.setBaseUrl:(Ljava/net/URL;)V
        22: .line 254
            goto 25
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
        23: astore 1 /* e */
        start local 1 // java.net.MalformedURLException e
        24: .line 255
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.net.MalformedURLException e
        25: .line 257
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.webresources.JarWarResourceSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0          this  Lorg/apache/catalina/webresources/JarWarResourceSet;
            2   15     3       warFile  Ljava/util/jar/JarFile;
            3   13     4  jarFileInWar  Ljava/util/jar/JarEntry;
            4   13     5     jarFileIs  Ljava/io/InputStream;
            6    9     8         jarIs  Ljava/util/jar/JarInputStream;
           20   21     1           ioe  Ljava/io/IOException;
           24   25     1             e  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           6     7       8  any
           5    10      10  any
           2    13      14  any
           1    16      16  any
           0    19      19  Class java.io.IOException
          21    22      23  Class java.net.MalformedURLException
    Exceptions:
      throws org.apache.catalina.LifecycleException
}
SourceFile: "JarWarResourceSet.java"
NestMembers:
  org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private final VersionedJarEntry = org.apache.catalina.webresources.JarWarResourceSet$VersionedJarEntry of org.apache.catalina.webresources.JarWarResourceSet