public class org.apache.tomcat.util.http.fileupload.FileUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.tomcat.util.http.fileupload.FileUtils
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.http.fileupload.FileUtils this
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            return
        end local 0 // org.apache.tomcat.util.http.fileupload.FileUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tomcat/util/http/fileupload/FileUtils;

  public static void deleteDirectory(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.File directory
         0: .line 65
            aload 0 /* directory */
            invokevirtual java.io.File.exists:()Z
            ifne 2
         1: .line 66
            return
         2: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.isSymlink:(Ljava/io/File;)Z
            ifne 4
         3: .line 70
            aload 0 /* directory */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.cleanDirectory:(Ljava/io/File;)V
         4: .line 73
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokevirtual java.io.File.delete:()Z
            ifne 8
         5: .line 75
            new java.lang.StringBuilder
            dup
            ldc "Unable to delete directory "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 74
            astore 1 /* message */
        start local 1 // java.lang.String message
         7: .line 76
            new java.io.IOException
            dup
            aload 1 /* message */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
         8: .line 78
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.File directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0  directory  Ljava/io/File;
            7    8     1    message  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  final

  public static void cleanDirectory(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // java.io.File directory
         0: .line 88
            aload 0 /* directory */
            invokevirtual java.io.File.exists:()Z
            ifne 3
         1: .line 89
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not exist"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* message */
        start local 1 // java.lang.String message
         2: .line 90
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* message */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
         3: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 6
         4: .line 94
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a directory"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* message */
        start local 1 // java.lang.String message
         5: .line 95
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* message */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
         6: .line 98
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 1 /* files */
        start local 1 // java.io.File[] files
         7: .line 99
            aload 1 /* files */
            ifnonnull 9
         8: .line 100
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to list contents of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 103
      StackMap locals: java.io.File[]
      StackMap stack:
            aconst_null
            astore 2 /* exception */
        start local 2 // java.io.IOException exception
        10: .line 104
            aload 1 /* files */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 17
      StackMap locals: java.io.File java.io.File[] java.io.IOException top int int java.io.File[]
      StackMap stack:
        11: aload 6
            iload 4
            aaload
            astore 3 /* file */
        start local 3 // java.io.File file
        12: .line 106
            aload 3 /* file */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.forceDelete:(Ljava/io/File;)V
        13: .line 107
            goto 16
      StackMap locals: java.io.File java.io.File[] java.io.IOException java.io.File int int java.io.File[]
      StackMap stack: java.io.IOException
        14: astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        15: .line 108
            aload 7 /* ioe */
            astore 2 /* exception */
        end local 7 // java.io.IOException ioe
        end local 3 // java.io.File file
        16: .line 104
      StackMap locals: java.io.File java.io.File[] java.io.IOException top int int java.io.File[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 11
        18: .line 112
            aload 2 /* exception */
            ifnull 20
        19: .line 113
            aload 2 /* exception */
            athrow
        20: .line 115
      StackMap locals: java.io.File java.io.File[] java.io.IOException
      StackMap stack:
            return
        end local 2 // java.io.IOException exception
        end local 1 // java.io.File[] files
        end local 0 // java.io.File directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0  directory  Ljava/io/File;
            2    3     1    message  Ljava/lang/String;
            5    6     1    message  Ljava/lang/String;
            7   21     1      files  [Ljava/io/File;
           10   21     2  exception  Ljava/io/IOException;
           12   16     3       file  Ljava/io/File;
           15   16     7        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    13      14  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  final

  public static void forceDelete(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.io.File file
         0: .line 134
            aload 0 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 3
         1: .line 135
            aload 0 /* file */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.deleteDirectory:(Ljava/io/File;)V
         2: .line 136
            goto 10
         3: .line 137
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokevirtual java.io.File.exists:()Z
            istore 1 /* filePresent */
        start local 1 // boolean filePresent
         4: .line 138
            aload 0 /* file */
            invokevirtual java.io.File.delete:()Z
            ifne 10
         5: .line 139
            iload 1 /* filePresent */
            ifne 7
         6: .line 140
            new java.io.FileNotFoundException
            dup
            new java.lang.StringBuilder
            dup
            ldc "File does not exist: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.FileNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 143
      StackMap locals: int
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Unable to delete file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* file */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 142
            astore 2 /* message */
        start local 2 // java.lang.String message
         9: .line 144
            new java.io.IOException
            dup
            aload 2 /* message */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String message
        end local 1 // boolean filePresent
        10: .line 147
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         file  Ljava/io/File;
            4   10     1  filePresent  Z
            9   10     2      message  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  final

  public static void forceDeleteOnExit(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.File file
         0: .line 158
            aload 0 /* file */
            invokevirtual java.io.File.isDirectory:()Z
            ifeq 3
         1: .line 159
            aload 0 /* file */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.deleteDirectoryOnExit:(Ljava/io/File;)V
         2: .line 160
            goto 4
         3: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* file */
            invokevirtual java.io.File.deleteOnExit:()V
         4: .line 163
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  final

  private static void deleteDirectoryOnExit(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.File directory
         0: .line 173
            aload 0 /* directory */
            invokevirtual java.io.File.exists:()Z
            ifne 2
         1: .line 174
            return
         2: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokevirtual java.io.File.deleteOnExit:()V
         3: .line 178
            aload 0 /* directory */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.isSymlink:(Ljava/io/File;)Z
            ifne 5
         4: .line 179
            aload 0 /* directory */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.cleanDirectoryOnExit:(Ljava/io/File;)V
         5: .line 181
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.File directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  directory  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  final

  private static void cleanDirectoryOnExit(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // java.io.File directory
         0: .line 191
            aload 0 /* directory */
            invokevirtual java.io.File.exists:()Z
            ifne 3
         1: .line 192
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " does not exist"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* message */
        start local 1 // java.lang.String message
         2: .line 193
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* message */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
         3: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 6
         4: .line 197
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a directory"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* message */
        start local 1 // java.lang.String message
         5: .line 198
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* message */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
         6: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokevirtual java.io.File.listFiles:()[Ljava/io/File;
            astore 1 /* files */
        start local 1 // java.io.File[] files
         7: .line 202
            aload 1 /* files */
            ifnonnull 9
         8: .line 203
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to list contents of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 206
      StackMap locals: java.io.File[]
      StackMap stack:
            aconst_null
            astore 2 /* exception */
        start local 2 // java.io.IOException exception
        10: .line 207
            aload 1 /* files */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 17
      StackMap locals: java.io.File java.io.File[] java.io.IOException top int int java.io.File[]
      StackMap stack:
        11: aload 6
            iload 4
            aaload
            astore 3 /* file */
        start local 3 // java.io.File file
        12: .line 209
            aload 3 /* file */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.forceDeleteOnExit:(Ljava/io/File;)V
        13: .line 210
            goto 16
      StackMap locals: java.io.File java.io.File[] java.io.IOException java.io.File int int java.io.File[]
      StackMap stack: java.io.IOException
        14: astore 7 /* ioe */
        start local 7 // java.io.IOException ioe
        15: .line 211
            aload 7 /* ioe */
            astore 2 /* exception */
        end local 7 // java.io.IOException ioe
        end local 3 // java.io.File file
        16: .line 207
      StackMap locals: java.io.File java.io.File[] java.io.IOException top int int java.io.File[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        17: iload 4
            iload 5
            if_icmplt 11
        18: .line 215
            aload 2 /* exception */
            ifnull 20
        19: .line 216
            aload 2 /* exception */
            athrow
        20: .line 218
      StackMap locals: java.io.File java.io.File[] java.io.IOException
      StackMap stack:
            return
        end local 2 // java.io.IOException exception
        end local 1 // java.io.File[] files
        end local 0 // java.io.File directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0  directory  Ljava/io/File;
            2    3     1    message  Ljava/lang/String;
            5    6     1    message  Ljava/lang/String;
            7   21     1      files  [Ljava/io/File;
           10   21     2  exception  Ljava/io/IOException;
           12   16     3       file  Ljava/io/File;
           15   16     7        ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    13      14  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  final

  public static void forceMkdir(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.File directory
         0: .line 232
            aload 0 /* directory */
            invokevirtual java.io.File.exists:()Z
            ifeq 9
         1: .line 233
            aload 0 /* directory */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 14
         2: .line 235
            new java.lang.StringBuilder
            dup
            ldc "File "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 236
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 237
            ldc " exists and is "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 238
            ldc "not a directory. Unable to create directory."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 235
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 234
            astore 1 /* message */
        start local 1 // java.lang.String message
         8: .line 239
            new java.io.IOException
            dup
            aload 1 /* message */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
         9: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* directory */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 14
        10: .line 245
            aload 0 /* directory */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 14
        11: .line 247
            new java.lang.StringBuilder
            dup
            ldc "Unable to create directory "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 246
            astore 1 /* message */
        start local 1 // java.lang.String message
        13: .line 248
            new java.io.IOException
            dup
            aload 1 /* message */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String message
        14: .line 252
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.io.File directory
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0  directory  Ljava/io/File;
            8    9     1    message  Ljava/lang/String;
           13   14     1    message  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      directory  final

  public static void forceMkdirParent(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.io.File file
         0: .line 264
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 1 /* parent */
        start local 1 // java.io.File parent
         1: .line 265
            aload 1 /* parent */
            ifnonnull 3
         2: .line 266
            return
         3: .line 268
      StackMap locals: java.io.File
      StackMap stack:
            aload 1 /* parent */
            invokestatic org.apache.tomcat.util.http.fileupload.FileUtils.forceMkdir:(Ljava/io/File;)V
         4: .line 269
            return
        end local 1 // java.io.File parent
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    file  Ljava/io/File;
            1    5     1  parent  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  final

  public static boolean isSymlink(java.io.File);
    descriptor: (Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.io.File file
         0: .line 288
            aload 0 /* file */
            ifnonnull 2
         1: .line 289
            new java.lang.NullPointerException
            dup
            ldc "File must not be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 292
      StackMap locals:
      StackMap stack:
            getstatic java.io.File.separatorChar:C
            bipush 92
            if_icmpne 4
         3: .line 293
            iconst_0
            ireturn
         4: .line 295
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1 /* fileInCanonicalDir */
        start local 1 // java.io.File fileInCanonicalDir
         5: .line 296
            aload 0 /* file */
            invokevirtual java.io.File.getParent:()Ljava/lang/String;
            ifnonnull 8
         6: .line 297
            aload 0 /* file */
            astore 1 /* fileInCanonicalDir */
         7: .line 298
            goto 10
         8: .line 299
      StackMap locals: java.io.File
      StackMap stack:
            aload 0 /* file */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
            astore 2 /* canonicalDir */
        start local 2 // java.io.File canonicalDir
         9: .line 300
            new java.io.File
            dup
            aload 2 /* canonicalDir */
            aload 0 /* file */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            astore 1 /* fileInCanonicalDir */
        end local 2 // java.io.File canonicalDir
        10: .line 303
      StackMap locals:
      StackMap stack:
            aload 1 /* fileInCanonicalDir */
            invokevirtual java.io.File.getCanonicalFile:()Ljava/io/File;
            aload 1 /* fileInCanonicalDir */
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 304
            iconst_0
            ireturn
        12: .line 306
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // java.io.File fileInCanonicalDir
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                file  Ljava/io/File;
            5   13     1  fileInCanonicalDir  Ljava/io/File;
            9   10     2        canonicalDir  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  
}
SourceFile: "FileUtils.java"