public class org.apache.catalina.webresources.DirResourceSet extends org.apache.catalina.webresources.AbstractFileResourceSet
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.catalina.webresources.DirResourceSet
  super_class: org.apache.catalina.webresources.AbstractFileResourceSet
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 41
            ldc Lorg/apache/catalina/webresources/DirResourceSet;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.catalina.webresources.DirResourceSet.log:Lorg/apache/juli/logging/Log;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
         0: .line 47
            aload 0 /* this */
            ldc "/"
            invokespecial org.apache.catalina.webresources.AbstractFileResourceSet.<init>:(Ljava/lang/String;)V
         1: .line 48
            return
        end local 0 // org.apache.catalina.webresources.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/catalina/webresources/DirResourceSet;

  public void <init>(org.apache.catalina.WebResourceRoot, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.apache.catalina.webresources.DirResourceSet 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 internalPath
         0: .line 70
            aload 0 /* this */
            aload 4 /* internalPath */
            invokespecial org.apache.catalina.webresources.AbstractFileResourceSet.<init>:(Ljava/lang/String;)V
         1: .line 71
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.setRoot:(Lorg/apache/catalina/WebResourceRoot;)V
         2: .line 72
            aload 0 /* this */
            aload 2 /* webAppMount */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.setWebAppMount:(Ljava/lang/String;)V
         3: .line 73
            aload 0 /* this */
            aload 3 /* base */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.setBase:(Ljava/lang/String;)V
         4: .line 75
            aload 1 /* root */
            invokeinterface org.apache.catalina.WebResourceRoot.getContext:()Lorg/apache/catalina/Context;
            invokeinterface org.apache.catalina.Context.getAddWebinfClassesResources:()Z
            ifeq 11
         5: .line 76
            new java.io.File
            dup
            aload 3 /* base */
            aload 4 /* internalPath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* f */
        start local 5 // java.io.File f
         6: .line 77
            new java.io.File
            dup
            aload 5 /* f */
            ldc "/WEB-INF/classes/META-INF/resources"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 5 /* f */
         7: .line 79
            aload 5 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 11
         8: .line 80
            aload 1 /* root */
            getstatic org.apache.catalina.WebResourceRoot$ResourceSetType.RESOURCE_JAR:Lorg/apache/catalina/WebResourceRoot$ResourceSetType;
            ldc "/"
         9: .line 81
            aload 5 /* f */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aconst_null
            ldc "/"
        10: .line 80
            invokeinterface org.apache.catalina.WebResourceRoot.createWebResourceSet:(Lorg/apache/catalina/WebResourceRoot$ResourceSetType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
        end local 5 // java.io.File f
        11: .line 85
      StackMap locals: org.apache.catalina.webresources.DirResourceSet org.apache.catalina.WebResourceRoot java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
            invokeinterface org.apache.catalina.WebResourceRoot.getState:()Lorg/apache/catalina/LifecycleState;
            invokevirtual org.apache.catalina.LifecycleState.isAvailable:()Z
            ifeq 16
        12: .line 87
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.start:()V
        13: .line 88
            goto 16
      StackMap locals:
      StackMap stack: org.apache.catalina.LifecycleException
        14: astore 5 /* e */
        start local 5 // org.apache.catalina.LifecycleException e
        15: .line 89
            new java.lang.IllegalStateException
            dup
            aload 5 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // org.apache.catalina.LifecycleException e
        16: .line 92
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String internalPath
        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.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lorg/apache/catalina/webresources/DirResourceSet;
            0   17     1          root  Lorg/apache/catalina/WebResourceRoot;
            0   17     2   webAppMount  Ljava/lang/String;
            0   17     3          base  Ljava/lang/String;
            0   17     4  internalPath  Ljava/lang/String;
            6   11     5             f  Ljava/io/File;
           15   16     5             e  Lorg/apache/catalina/LifecycleException;
      Exception table:
        from    to  target  type
          12    13      14  Class org.apache.catalina.LifecycleException
    MethodParameters:
              Name  Flags
      root          
      webAppMount   
      base          
      internalPath  

  public org.apache.catalina.WebResource getResource(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/catalina/WebResource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
        start local 1 // java.lang.String path
         0: .line 97
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 98
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 2 /* webAppMount */
        start local 2 // java.lang.String webAppMount
         2: .line 99
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getRoot:()Lorg/apache/catalina/WebResourceRoot;
            astore 3 /* root */
        start local 3 // org.apache.catalina.WebResourceRoot root
         3: .line 100
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
         4: .line 101
            aload 0 /* this */
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            iconst_0
            invokevirtual org.apache.catalina.webresources.DirResourceSet.file:(Ljava/lang/String;Z)Ljava/io/File;
            astore 4 /* f */
        start local 4 // java.io.File f
         5: .line 102
            aload 4 /* f */
            ifnonnull 7
         6: .line 103
            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
         7: .line 105
      StackMap locals: java.lang.String org.apache.catalina.WebResourceRoot java.io.File
      StackMap stack:
            aload 4 /* f */
            invokevirtual java.io.File.exists:()Z
            ifne 9
         8: .line 106
            new org.apache.catalina.webresources.EmptyResource
            dup
            aload 3 /* root */
            aload 1 /* path */
            aload 4 /* f */
            invokespecial org.apache.catalina.webresources.EmptyResource.<init>:(Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;Ljava/io/File;)V
            areturn
         9: .line 108
      StackMap locals:
      StackMap stack:
            aload 4 /* f */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 11
            aload 1 /* path */
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 11
        10: .line 109
            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 */
        11: .line 111
      StackMap locals:
      StackMap stack:
            new org.apache.catalina.webresources.FileResource
            dup
            aload 3 /* root */
            aload 1 /* path */
            aload 4 /* f */
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.isReadOnly:()Z
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getManifest:()Ljava/util/jar/Manifest;
            invokespecial org.apache.catalina.webresources.FileResource.<init>:(Lorg/apache/catalina/WebResourceRoot;Ljava/lang/String;Ljava/io/File;ZLjava/util/jar/Manifest;)V
            areturn
        end local 4 // java.io.File f
        12: .line 113
      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.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/apache/catalina/webresources/DirResourceSet;
            0   13     1         path  Ljava/lang/String;
            2   13     2  webAppMount  Ljava/lang/String;
            3   13     3         root  Lorg/apache/catalina/WebResourceRoot;
            5   12     4            f  Ljava/io/File;
    MethodParameters:
      Name  Flags
      path  

  public java.lang.String[] list(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
        start local 1 // java.lang.String path
         0: .line 119
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 120
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 2 /* webAppMount */
        start local 2 // java.lang.String webAppMount
         2: .line 121
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         3: .line 122
            aload 0 /* this */
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.catalina.webresources.DirResourceSet.file:(Ljava/lang/String;Z)Ljava/io/File;
            astore 3 /* f */
        start local 3 // java.io.File f
         4: .line 123
            aload 3 /* f */
            ifnonnull 6
         5: .line 124
            getstatic org.apache.catalina.webresources.DirResourceSet.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            areturn
         6: .line 126
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
            aload 3 /* f */
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            astore 4 /* result */
        start local 4 // java.lang.String[] result
         7: .line 127
            aload 4 /* result */
            ifnonnull 9
         8: .line 128
            getstatic org.apache.catalina.webresources.DirResourceSet.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            areturn
         9: .line 130
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 4 // java.lang.String[] result
        end local 3 // java.io.File f
        10: .line 133
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 12
        11: .line 134
            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 */
        12: .line 136
      StackMap locals:
      StackMap stack:
            aload 2 /* webAppMount */
            aload 1 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 19
        13: .line 137
            aload 2 /* webAppMount */
            bipush 47
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.indexOf:(II)I
            istore 3 /* i */
        start local 3 // int i
        14: .line 138
            iload 3 /* i */
            iconst_m1
            if_icmpne 16
        15: .line 139
            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
        16: .line 141
      StackMap locals: int
      StackMap stack:
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
        17: .line 142
            aload 2 /* webAppMount */
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            iload 3 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        18: .line 141
            areturn
        end local 3 // int i
        19: .line 145
      StackMap locals:
      StackMap stack:
            getstatic org.apache.catalina.webresources.DirResourceSet.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            areturn
        end local 2 // java.lang.String webAppMount
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.webresources.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lorg/apache/catalina/webresources/DirResourceSet;
            0   20     1         path  Ljava/lang/String;
            2   20     2  webAppMount  Ljava/lang/String;
            4   10     3            f  Ljava/io/File;
            7   10     4       result  [Ljava/lang/String;
           14   19     3            i  I
    MethodParameters:
      Name  Flags
      path  

  public java.util.Set<java.lang.String> listWebAppPaths(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
        start local 1 // java.lang.String path
         0: .line 151
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 152
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 2 /* webAppMount */
        start local 2 // java.lang.String webAppMount
         2: .line 153
            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 154
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 20
         4: .line 155
            aload 0 /* this */
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.catalina.webresources.DirResourceSet.file:(Ljava/lang/String;Z)Ljava/io/File;
            astore 4 /* f */
        start local 4 // java.io.File f
         5: .line 156
            aload 4 /* f */
            ifnull 28
         6: .line 157
            aload 4 /* f */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 5 /* list */
        start local 5 // java.io.File[] list
         7: .line 158
            aload 5 /* list */
            ifnull 28
         8: .line 159
            aload 5 /* list */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 18
      StackMap locals: org.apache.catalina.webresources.DirResourceSet java.lang.String java.lang.String org.apache.catalina.util.ResourceSet java.io.File java.io.File[] top int int java.io.File[]
      StackMap stack:
         9: aload 9
            iload 7
            aaload
            astore 6 /* entry */
        start local 6 // java.io.File entry
        10: .line 160
            new java.lang.StringBuilder
            dup
            aload 1 /* path */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 10 /* sb */
        start local 10 // java.lang.StringBuilder sb
        11: .line 161
            aload 1 /* path */
            aload 1 /* path */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 13
        12: .line 162
            aload 10 /* sb */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 164
      StackMap locals: org.apache.catalina.webresources.DirResourceSet java.lang.String java.lang.String org.apache.catalina.util.ResourceSet java.io.File java.io.File[] java.io.File int int java.io.File[] java.lang.StringBuilder
      StackMap stack:
            aload 10 /* sb */
            aload 6 /* entry */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 165
            aload 6 /* entry */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 16
        15: .line 166
            aload 10 /* sb */
            bipush 47
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        16: .line 168
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            aload 10 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.catalina.util.ResourceSet.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.lang.StringBuilder sb
        end local 6 // java.io.File entry
        17: .line 159
            iinc 7 1
      StackMap locals: org.apache.catalina.webresources.DirResourceSet java.lang.String java.lang.String org.apache.catalina.util.ResourceSet java.io.File java.io.File[] top int int java.io.File[]
      StackMap stack:
        18: iload 7
            iload 8
            if_icmplt 9
        end local 5 // java.io.File[] list
        end local 4 // java.io.File f
        19: .line 172
            goto 28
        20: .line 173
      StackMap locals: org.apache.catalina.webresources.DirResourceSet 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 174
            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 176
      StackMap locals:
      StackMap stack:
            aload 2 /* webAppMount */
            aload 1 /* path */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 28
        23: .line 177
            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 178
            iload 4 /* i */
            iconst_m1
            if_icmpne 27
        25: .line 179
            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 180
            goto 28
        27: .line 181
      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 185
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            iconst_1
            invokevirtual org.apache.catalina.util.ResourceSet.setLocked:(Z)V
        29: .line 186
            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.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0         this  Lorg/apache/catalina/webresources/DirResourceSet;
            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;>;
            5   19     4            f  Ljava/io/File;
            7   19     5         list  [Ljava/io/File;
           10   17     6        entry  Ljava/io/File;
           11   17    10           sb  Ljava/lang/StringBuilder;
           24   28     4            i  I
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      path  

  public boolean mkdir(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
        start local 1 // java.lang.String path
         0: .line 191
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 192
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.isReadOnly:()Z
            ifeq 3
         2: .line 193
            iconst_0
            ireturn
         3: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 2 /* webAppMount */
        start local 2 // java.lang.String webAppMount
         4: .line 196
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 9
         5: .line 197
            aload 0 /* this */
            aload 1 /* path */
            aload 2 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            iconst_0
            invokevirtual org.apache.catalina.webresources.DirResourceSet.file:(Ljava/lang/String;Z)Ljava/io/File;
            astore 3 /* f */
        start local 3 // java.io.File f
         6: .line 198
            aload 3 /* f */
            ifnonnull 8
         7: .line 199
            iconst_0
            ireturn
         8: .line 201
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
            aload 3 /* f */
            invokevirtual java.io.File.mkdir:()Z
            ireturn
        end local 3 // java.io.File f
         9: .line 203
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.String webAppMount
        end local 1 // java.lang.String path
        end local 0 // org.apache.catalina.webresources.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/catalina/webresources/DirResourceSet;
            0   10     1         path  Ljava/lang/String;
            4   10     2  webAppMount  Ljava/lang/String;
            6    9     3            f  Ljava/io/File;
    MethodParameters:
      Name  Flags
      path  

  public boolean write(java.lang.String, java.io.InputStream, boolean);
    descriptor: (Ljava/lang/String;Ljava/io/InputStream;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
        start local 1 // java.lang.String path
        start local 2 // java.io.InputStream is
        start local 3 // boolean overwrite
         0: .line 209
            aload 0 /* this */
            aload 1 /* path */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.checkPath:(Ljava/lang/String;)V
         1: .line 211
            aload 2 /* is */
            ifnonnull 5
         2: .line 212
            new java.lang.NullPointerException
            dup
         3: .line 213
            getstatic org.apache.catalina.webresources.DirResourceSet.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 212
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.isReadOnly:()Z
            ifeq 7
         6: .line 217
            iconst_0
            ireturn
         7: .line 222
      StackMap locals:
      StackMap stack:
            aload 1 /* path */
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 9
         8: .line 223
            iconst_0
            ireturn
         9: .line 226
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* dest */
        start local 4 // java.io.File dest
        10: .line 227
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getWebAppMount:()Ljava/lang/String;
            astore 5 /* webAppMount */
        start local 5 // java.lang.String webAppMount
        11: .line 228
            aload 1 /* path */
            aload 5 /* webAppMount */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 15
        12: .line 229
            aload 0 /* this */
            aload 1 /* path */
            aload 5 /* webAppMount */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            iconst_0
            invokevirtual org.apache.catalina.webresources.DirResourceSet.file:(Ljava/lang/String;Z)Ljava/io/File;
            astore 4 /* dest */
        13: .line 230
            aload 4 /* dest */
            ifnonnull 16
        14: .line 231
            iconst_0
            ireturn
        15: .line 234
      StackMap locals: java.io.File java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        16: .line 237
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            invokevirtual java.io.File.exists:()Z
            ifeq 18
            iload 3 /* overwrite */
            ifne 18
        17: .line 238
            iconst_0
            ireturn
        18: .line 242
      StackMap locals:
      StackMap stack:
            iload 3 /* overwrite */
            ifeq 21
        19: .line 243
            aload 2 /* is */
            aload 4 /* dest */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            iconst_1
            anewarray java.nio.file.CopyOption
            dup
            iconst_0
            getstatic java.nio.file.StandardCopyOption.REPLACE_EXISTING:Ljava/nio/file/StandardCopyOption;
            aastore
            invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
            pop2
        20: .line 244
            goto 25
        21: .line 245
      StackMap locals:
      StackMap stack:
            aload 2 /* is */
            aload 4 /* dest */
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.CopyOption
            invokestatic java.nio.file.Files.copy:(Ljava/io/InputStream;Ljava/nio/file/Path;[Ljava/nio/file/CopyOption;)J
            pop2
        22: .line 247
            goto 25
      StackMap locals:
      StackMap stack: java.io.IOException
        23: pop
        24: .line 248
            iconst_0
            ireturn
        25: .line 251
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.lang.String webAppMount
        end local 4 // java.io.File dest
        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.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0         this  Lorg/apache/catalina/webresources/DirResourceSet;
            0   26     1         path  Ljava/lang/String;
            0   26     2           is  Ljava/io/InputStream;
            0   26     3    overwrite  Z
           10   26     4         dest  Ljava/io/File;
           11   26     5  webAppMount  Ljava/lang/String;
      Exception table:
        from    to  target  type
          18    22      23  Class java.io.IOException
    MethodParameters:
           Name  Flags
      path       
      is         
      overwrite  

  protected void checkType(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=2, args_size=2
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
        start local 1 // java.io.File file
         0: .line 256
            aload 1 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 4
         1: .line 257
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.catalina.webresources.DirResourceSet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "dirResourceSet.notDirectory"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 258
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getBase:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            getstatic java.io.File.separator:Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getInternalPath:()Ljava/lang/String;
            aastore
         3: .line 257
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 260
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.File file
        end local 0 // org.apache.catalina.webresources.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/catalina/webresources/DirResourceSet;
            0    5     1  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      file  

  protected void initInternal();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // org.apache.catalina.webresources.DirResourceSet this
         0: .line 265
            aload 0 /* this */
            invokespecial org.apache.catalina.webresources.AbstractFileResourceSet.initInternal:()V
         1: .line 267
            aload 0 /* this */
            invokevirtual org.apache.catalina.webresources.DirResourceSet.getWebAppMount:()Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
         2: .line 269
            aload 0 /* this */
            ldc "META-INF/MANIFEST.MF"
            iconst_1
            invokevirtual org.apache.catalina.webresources.DirResourceSet.file:(Ljava/lang/String;Z)Ljava/io/File;
            astore 1 /* mf */
        start local 1 // java.io.File mf
         3: .line 270
            aload 1 /* mf */
            ifnull 15
            aload 1 /* mf */
            invokevirtual java.io.File.isFile:()Z
            ifeq 15
         4: .line 271
            aconst_null
            astore 2
            aconst_null
            astore 3
         5: new java.io.FileInputStream
            dup
            aload 1 /* mf */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 4 /* fis */
        start local 4 // java.io.FileInputStream fis
         6: .line 272
            aload 0 /* this */
            new java.util.jar.Manifest
            dup
            aload 4 /* fis */
            invokespecial java.util.jar.Manifest.<init>:(Ljava/io/InputStream;)V
            invokevirtual org.apache.catalina.webresources.DirResourceSet.setManifest:(Ljava/util/jar/Manifest;)V
         7: .line 273
            aload 4 /* fis */
            ifnull 15
            aload 4 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
            goto 15
      StackMap locals: org.apache.catalina.webresources.DirResourceSet java.io.File java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
         8: astore 2
            aload 4 /* fis */
            ifnull 9
            aload 4 /* fis */
            invokevirtual java.io.FileInputStream.close:()V
        end local 4 // java.io.FileInputStream fis
      StackMap locals:
      StackMap stack:
         9: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 3
            aload 2
            ifnonnull 11
            aload 3
            astore 2
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 2
            aload 3
            if_acmpeq 12
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 2
            athrow
      StackMap locals: org.apache.catalina.webresources.DirResourceSet java.io.File
      StackMap stack: java.io.IOException
        13: astore 2 /* e */
        start local 2 // java.io.IOException e
        14: .line 274
            getstatic org.apache.catalina.webresources.DirResourceSet.log:Lorg/apache/juli/logging/Log;
            getstatic org.apache.catalina.webresources.DirResourceSet.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "dirResourceSet.manifestFail"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* mf */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            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.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 2 // java.io.IOException e
        end local 1 // java.io.File mf
        15: .line 278
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.catalina.webresources.DirResourceSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lorg/apache/catalina/webresources/DirResourceSet;
            3   15     1    mf  Ljava/io/File;
            6    9     4   fis  Ljava/io/FileInputStream;
           14   15     2     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6     7       8  any
           5    10      10  any
           4    13      13  Class java.io.IOException
    Exceptions:
      throws org.apache.catalina.LifecycleException
}
SourceFile: "DirResourceSet.java"
InnerClasses:
  public final ResourceSetType = org.apache.catalina.WebResourceRoot$ResourceSetType of org.apache.catalina.WebResourceRoot