class org.junit.jupiter.engine.extension.TempDirectory$CloseablePath implements org.junit.jupiter.api.extension.ExtensionContext$Store$CloseableResource
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.junit.jupiter.engine.extension.TempDirectory$CloseablePath
  super_class: java.lang.Object
{
  private final java.nio.file.Path dir;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
        start local 1 // java.nio.file.Path dir
         0: .line 170
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 171
            aload 0 /* this */
            aload 1 /* dir */
            putfield org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.dir:Ljava/nio/file/Path;
         2: .line 172
            return
        end local 1 // java.nio.file.Path dir
        end local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;
            0    3     1   dir  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      dir   

  java.nio.file.Path get();
    descriptor: ()Ljava/nio/file/Path;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
         0: .line 175
            aload 0 /* this */
            getfield org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.dir:Ljava/nio/file/Path;
            areturn
        end local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
         0: .line 180
            aload 0 /* this */
            invokevirtual org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.deleteAllFilesAndDirectories:()Ljava/util/SortedMap;
            astore 1 /* failures */
        start local 1 // java.util.SortedMap failures
         1: .line 181
            aload 1 /* failures */
            invokeinterface java.util.SortedMap.isEmpty:()Z
            ifne 3
         2: .line 182
            aload 0 /* this */
            aload 1 /* failures */
            invokevirtual org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.createIOExceptionWithAttachedFailures:(Ljava/util/SortedMap;)Ljava/io/IOException;
            athrow
         3: .line 184
      StackMap locals: java.util.SortedMap
      StackMap stack:
            return
        end local 1 // java.util.SortedMap failures
        end local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;
            1    4     1  failures  Ljava/util/SortedMap<Ljava/nio/file/Path;Ljava/io/IOException;>;
    Exceptions:
      throws java.io.IOException

  private java.util.SortedMap<java.nio.file.Path, java.io.IOException> deleteAllFilesAndDirectories();
    descriptor: ()Ljava/util/SortedMap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
         0: .line 187
            aload 0 /* this */
            getfield org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.dir:Ljava/nio/file/Path;
            iconst_0
            anewarray java.nio.file.LinkOption
            invokestatic java.nio.file.Files.notExists:(Ljava/nio/file/Path;[Ljava/nio/file/LinkOption;)Z
            ifeq 2
         1: .line 188
            invokestatic java.util.Collections.emptySortedMap:()Ljava/util/SortedMap;
            areturn
         2: .line 191
      StackMap locals:
      StackMap stack:
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 1 /* failures */
        start local 1 // java.util.SortedMap failures
         3: .line 192
            aload 0 /* this */
            getfield org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.dir:Ljava/nio/file/Path;
            new org.junit.jupiter.engine.extension.TempDirectory$CloseablePath$1
            dup
            aload 0 /* this */
            aload 1 /* failures */
            invokespecial org.junit.jupiter.engine.extension.TempDirectory$CloseablePath$1.<init>:(Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;Ljava/util/SortedMap;)V
            invokestatic java.nio.file.Files.walkFileTree:(Ljava/nio/file/Path;Ljava/nio/file/FileVisitor;)Ljava/nio/file/Path;
            pop
         4: .line 251
            aload 1 /* failures */
            areturn
        end local 1 // java.util.SortedMap failures
        end local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;
            3    5     1  failures  Ljava/util/SortedMap<Ljava/nio/file/Path;Ljava/io/IOException;>;
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/SortedMap<Ljava/nio/file/Path;Ljava/io/IOException;>;

  private java.io.IOException createIOExceptionWithAttachedFailures(java.util.SortedMap<java.nio.file.Path, java.io.IOException>);
    descriptor: (Ljava/util/SortedMap;)Ljava/io/IOException;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
        start local 1 // java.util.SortedMap failures
         0: .line 256
            aload 1 /* failures */
            invokeinterface java.util.SortedMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         1: .line 257
            aload 0 /* this */
            invokedynamic accept(Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/junit/jupiter/engine/extension/TempDirectory$CloseablePath.tryToDeleteOnExit(Ljava/nio/file/Path;)V (7)
                  (Ljava/nio/file/Path;)V
            invokeinterface java.util.stream.Stream.peek:(Ljava/util/function/Consumer;)Ljava/util/stream/Stream;
         2: .line 258
            aload 0 /* this */
            invokedynamic apply(Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/junit/jupiter/engine/extension/TempDirectory$CloseablePath.relativizeSafely(Ljava/nio/file/Path;)Ljava/nio/file/Path; (7)
                  (Ljava/nio/file/Path;)Ljava/nio/file/Path;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 259
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  java/lang/String.valueOf(Ljava/lang/Object;)Ljava/lang/String; (6)
                  (Ljava/nio/file/Path;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 260
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
         5: .line 256
            astore 2 /* joinedPaths */
        start local 2 // java.lang.String joinedPaths
         6: .line 262
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to delete temp directory "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.dir:Ljava/nio/file/Path;
            invokeinterface java.nio.file.Path.toAbsolutePath:()Ljava/nio/file/Path;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         7: .line 263
            ldc ". The following paths could not be deleted (see suppressed exceptions for details): "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 264
            aload 2 /* joinedPaths */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 262
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 5 /* exception */
        start local 5 // java.io.IOException exception
        10: .line 265
            aload 1 /* failures */
            invokeinterface java.util.SortedMap.values:()Ljava/util/Collection;
            aload 5 /* exception */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/io/IOException;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  java/lang/Throwable.addSuppressed(Ljava/lang/Throwable;)V (5)
                  (Ljava/io/IOException;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
        11: .line 266
            aload 5 /* exception */
            areturn
        end local 5 // java.io.IOException exception
        end local 2 // java.lang.String joinedPaths
        end local 1 // java.util.SortedMap failures
        end local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;
            0   12     1     failures  Ljava/util/SortedMap<Ljava/nio/file/Path;Ljava/io/IOException;>;
            6   12     2  joinedPaths  Ljava/lang/String;
           10   12     5    exception  Ljava/io/IOException;
    Signature: (Ljava/util/SortedMap<Ljava/nio/file/Path;Ljava/io/IOException;>;)Ljava/io/IOException;
    MethodParameters:
          Name  Flags
      failures  

  private void tryToDeleteOnExit(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
        start local 1 // java.nio.file.Path path
         0: .line 271
            aload 1 /* path */
            invokeinterface java.nio.file.Path.toFile:()Ljava/io/File;
            invokevirtual java.io.File.deleteOnExit:()V
         1: .line 272
            goto 3
         2: .line 273
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
            pop
         3: .line 275
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.file.Path path
        end local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;
            0    4     1  path  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.UnsupportedOperationException
    MethodParameters:
      Name  Flags
      path  

  private java.nio.file.Path relativizeSafely(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)Ljava/nio/file/Path;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
        start local 1 // java.nio.file.Path path
         0: .line 279
            aload 0 /* this */
            getfield org.junit.jupiter.engine.extension.TempDirectory$CloseablePath.dir:Ljava/nio/file/Path;
            aload 1 /* path */
            invokeinterface java.nio.file.Path.relativize:(Ljava/nio/file/Path;)Ljava/nio/file/Path;
         1: areturn
         2: .line 281
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            pop
         3: .line 282
            aload 1 /* path */
            areturn
        end local 1 // java.nio.file.Path path
        end local 0 // org.junit.jupiter.engine.extension.TempDirectory$CloseablePath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/junit/jupiter/engine/extension/TempDirectory$CloseablePath;
            0    4     1  path  Ljava/nio/file/Path;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      path  
}
SourceFile: "TempDirectory.java"
NestHost: org.junit.jupiter.engine.extension.TempDirectory
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Store = org.junit.jupiter.api.extension.ExtensionContext$Store of org.junit.jupiter.api.extension.ExtensionContext
  public abstract CloseableResource = org.junit.jupiter.api.extension.ExtensionContext$Store$CloseableResource of org.junit.jupiter.api.extension.ExtensionContext$Store
  private CloseablePath = org.junit.jupiter.engine.extension.TempDirectory$CloseablePath of org.junit.jupiter.engine.extension.TempDirectory
  org.junit.jupiter.engine.extension.TempDirectory$CloseablePath$1