public class org.graalvm.component.installer.os.DefaultFileOperations extends org.graalvm.component.installer.FileOperations
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.os.DefaultFileOperations
  super_class: org.graalvm.component.installer.FileOperations
{
  private static final java.util.Set<java.nio.file.attribute.PosixFilePermission> ALL_WRITE_PERMS;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 42
            ldc "rwxrwxrwx"
            invokestatic java.nio.file.attribute.PosixFilePermissions.fromString:(Ljava/lang/String;)Ljava/util/Set;
            putstatic org.graalvm.component.installer.os.DefaultFileOperations.ALL_WRITE_PERMS:Ljava/util/Set;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
         0: .line 40
            aload 0 /* this */
            invokespecial org.graalvm.component.installer.FileOperations.<init>:()V
            return
        end local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/os/DefaultFileOperations;

  protected boolean doWithPermissions(java.nio.file.Path, java.util.concurrent.Callable<java.lang.Void>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/concurrent/Callable;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
        start local 1 // java.nio.file.Path p
        start local 2 // java.util.concurrent.Callable action
         0: .line 46
            aconst_null
            astore 3 /* restoreDirPermissions */
        start local 3 // java.util.Set restoreDirPermissions
         1: .line 47
            aload 1 /* p */
            getstatic org.graalvm.component.installer.os.DefaultFileOperations.ALL_WRITE_PERMS:Ljava/util/Set;
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
         2: .line 48
            aload 1 /* p */
            invokeinterface java.nio.file.Path.normalize:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.getParent:()Ljava/nio/file/Path;
            astore 4 /* d */
        start local 4 // java.nio.file.Path d
         3: .line 51
            aload 4 /* d */
            ifnonnull 5
         4: .line 52
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot determine parent of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* p */
            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
         5: .line 54
      StackMap locals: java.util.Set java.nio.file.Path
      StackMap stack:
            aload 4 /* d */
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.DefaultFileOperations.rootPath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.startsWith:(Ljava/nio/file/Path;)Z
            ifeq 11
            aload 4 /* d */
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.DefaultFileOperations.rootPath:()Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.equals:(Ljava/lang/Object;)Z
            ifne 11
         6: .line 55
            aload 4 /* d */
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.getPosixFilePermissions:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Ljava/util/Set;
            astore 3 /* restoreDirPermissions */
         7: .line 57
            aload 4 /* d */
            getstatic org.graalvm.component.installer.os.DefaultFileOperations.ALL_WRITE_PERMS:Ljava/util/Set;
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
         8: .line 58
            goto 11
      StackMap locals:
      StackMap stack: java.io.IOException
         9: pop
        10: .line 60
            iconst_0
            ireturn
        11: .line 63
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* ok */
        start local 5 // boolean ok
        12: .line 65
            aload 2 /* action */
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
            pop
        13: .line 66
            iconst_1
            istore 5 /* ok */
        14: .line 67
            goto 34
      StackMap locals: org.graalvm.component.installer.os.DefaultFileOperations java.nio.file.Path java.util.concurrent.Callable java.util.Set java.nio.file.Path int
      StackMap stack: java.io.IOException
        15: astore 6 /* ex */
        start local 6 // java.io.IOException ex
        16: .line 68
            aload 6 /* ex */
            athrow
        end local 6 // java.io.IOException ex
        17: .line 69
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        18: .line 70
            iconst_0
            istore 5 /* ok */
        19: .line 72
            aload 3 /* restoreDirPermissions */
            ifnull 40
        20: .line 74
            aload 4 /* d */
            aload 3 /* restoreDirPermissions */
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
        21: .line 75
            goto 40
      StackMap locals:
      StackMap stack: java.io.IOException
        22: astore 8 /* ex2 */
        start local 8 // java.io.IOException ex2
        23: .line 77
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.DefaultFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_ErrorRestoringPermissions"
            aload 8 /* ex2 */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            aastore
            dup
            iconst_1
            aload 8 /* ex2 */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        24: .line 78
            iconst_0
            istore 5 /* ok */
        end local 8 // java.io.IOException ex2
        25: goto 40
        26: .line 71
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        27: .line 72
            aload 3 /* restoreDirPermissions */
            ifnull 33
        28: .line 74
            aload 4 /* d */
            aload 3 /* restoreDirPermissions */
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
        29: .line 75
            goto 33
      StackMap locals: org.graalvm.component.installer.os.DefaultFileOperations java.nio.file.Path java.util.concurrent.Callable java.util.Set java.nio.file.Path int top java.lang.Throwable
      StackMap stack: java.io.IOException
        30: astore 8 /* ex2 */
        start local 8 // java.io.IOException ex2
        31: .line 77
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.DefaultFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_ErrorRestoringPermissions"
            aload 8 /* ex2 */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            aastore
            dup
            iconst_1
            aload 8 /* ex2 */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        32: .line 78
            iconst_0
            istore 5 /* ok */
        end local 8 // java.io.IOException ex2
        33: .line 82
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        34: .line 72
      StackMap locals: org.graalvm.component.installer.os.DefaultFileOperations java.nio.file.Path java.util.concurrent.Callable java.util.Set java.nio.file.Path int
      StackMap stack:
            aload 3 /* restoreDirPermissions */
            ifnull 40
        35: .line 74
            aload 4 /* d */
            aload 3 /* restoreDirPermissions */
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
        36: .line 75
            goto 40
      StackMap locals:
      StackMap stack: java.io.IOException
        37: astore 8 /* ex2 */
        start local 8 // java.io.IOException ex2
        38: .line 77
            aload 0 /* this */
            invokevirtual org.graalvm.component.installer.os.DefaultFileOperations.feedback:()Lorg/graalvm/component/installer/Feedback;
            ldc "FILE_ErrorRestoringPermissions"
            aload 8 /* ex2 */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* p */
            aastore
            dup
            iconst_1
            aload 8 /* ex2 */
            invokevirtual java.io.IOException.getLocalizedMessage:()Ljava/lang/String;
            aastore
            invokeinterface org.graalvm.component.installer.Feedback.error:(Ljava/lang/String;Ljava/lang/Throwable;[Ljava/lang/Object;)V
        39: .line 78
            iconst_0
            istore 5 /* ok */
        end local 8 // java.io.IOException ex2
        40: .line 83
      StackMap locals:
      StackMap stack:
            iload 5 /* ok */
            ireturn
        end local 5 // boolean ok
        end local 4 // java.nio.file.Path d
        end local 3 // java.util.Set restoreDirPermissions
        end local 2 // java.util.concurrent.Callable action
        end local 1 // java.nio.file.Path p
        end local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   41     0                   this  Lorg/graalvm/component/installer/os/DefaultFileOperations;
            0   41     1                      p  Ljava/nio/file/Path;
            0   41     2                 action  Ljava/util/concurrent/Callable<Ljava/lang/Void;>;
            1   41     3  restoreDirPermissions  Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
            3   41     4                      d  Ljava/nio/file/Path;
           12   41     5                     ok  Z
           16   17     6                     ex  Ljava/io/IOException;
           23   25     8                    ex2  Ljava/io/IOException;
           31   33     8                    ex2  Ljava/io/IOException;
           38   40     8                    ex2  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.IOException
          12    14      15  Class java.io.IOException
          12    14      17  Class java.lang.Exception
          20    21      22  Class java.io.IOException
          12    19      26  any
          28    29      30  Class java.io.IOException
          35    36      37  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/concurrent/Callable<Ljava/lang/Void;>;)Z
    MethodParameters:
        Name  Flags
      p       
      action  

  public void setPermissions(java.nio.file.Path, java.util.Set<java.nio.file.attribute.PosixFilePermission>);
    descriptor: (Ljava/nio/file/Path;Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
        start local 1 // java.nio.file.Path target
        start local 2 // java.util.Set perms
         0: .line 88
            aload 1 /* target */
            aload 2 /* perms */
            invokestatic java.nio.file.Files.setPosixFilePermissions:(Ljava/nio/file/Path;Ljava/util/Set;)Ljava/nio/file/Path;
            pop
         1: .line 89
            return
        end local 2 // java.util.Set perms
        end local 1 // java.nio.file.Path target
        end local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/graalvm/component/installer/os/DefaultFileOperations;
            0    2     1  target  Ljava/nio/file/Path;
            0    2     2   perms  Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/nio/file/Path;Ljava/util/Set<Ljava/nio/file/attribute/PosixFilePermission;>;)V
    MethodParameters:
        Name  Flags
      target  
      perms   

  public boolean flush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
         0: .line 93
            iconst_0
            ireturn
        end local 0 // org.graalvm.component.installer.os.DefaultFileOperations this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/component/installer/os/DefaultFileOperations;
}
SourceFile: "DefaultFileOperations.java"