public final class com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput implements com.oracle.truffle.llvm.tests.pipe.CaptureOutput
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput
  super_class: java.lang.Object
{
  private static final int STDOUT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int STDERR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private final java.io.File stdoutFile;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int oldStdout;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.File stderrFile;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int oldStderr;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String stdout;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String stderr;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 40
            ldc "test.pipe.lib"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* pipeLib */
        start local 0 // java.lang.String pipeLib
         1: .line 41
            aload 0 /* pipeLib */
            ifnonnull 4
         2: .line 42
            ldc "pipe"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         3: .line 43
            goto 5
         4: .line 44
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* pipeLib */
            invokestatic java.lang.System.load:(Ljava/lang/String;)V
        end local 0 // java.lang.String pipeLib
         5: .line 49
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            1    5     0  pipeLib  Ljava/lang/String;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            ldc "stdout"
            ldc ".log"
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdoutFile:Ljava/io/File;
         2: .line 63
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdoutFile:Ljava/io/File;
            invokevirtual java.io.File.deleteOnExit:()V
         3: .line 65
            aload 0 /* this */
            ldc "stderr"
            ldc ".log"
            invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderrFile:Ljava/io/File;
         4: .line 66
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderrFile:Ljava/io/File;
            invokevirtual java.io.File.deleteOnExit:()V
         5: .line 68
            aload 0 /* this */
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdoutFile:Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokestatic com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.startCapturing:(ILjava/lang/String;)I
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.oldStdout:I
         6: .line 69
            aload 0 /* this */
            iconst_2
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderrFile:Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            invokestatic com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.startCapturing:(ILjava/lang/String;)I
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.oldStderr:I
         7: .line 70
            goto 13
      StackMap locals: com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput
      StackMap stack: java.io.IOException
         8: astore 1 /* e */
        start local 1 // java.io.IOException e
         9: .line 71
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Error while initializing output capture:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 72
            aload 1 /* e */
            invokevirtual java.io.IOException.printStackTrace:()V
        11: .line 73
            bipush -99
            invokestatic java.lang.System.exit:(I)V
        12: .line 74
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
        end local 1 // java.io.IOException e
        13: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdout:Ljava/lang/String;
        14: .line 78
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderr:Ljava/lang/String;
        15: .line 79
            return
        end local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/oracle/truffle/llvm/tests/pipe/CaptureNativeOutput;
            9   13     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     7       8  Class java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
         0: .line 83
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.flush:()V
         1: .line 84
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.flush:()V
         2: .line 85
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdout:Ljava/lang/String;
            ifnonnull 8
         3: .line 86
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.oldStdout:I
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.oldStderr:I
            invokestatic com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stopCapturing:(II)V
         4: .line 88
            aload 0 /* this */
            new java.lang.String
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdoutFile:Ljava/io/File;
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokespecial java.lang.String.<init>:([B)V
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdout:Ljava/lang/String;
         5: .line 89
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdoutFile:Ljava/io/File;
            invokevirtual java.io.File.delete:()Z
            pop
         6: .line 91
            aload 0 /* this */
            new java.lang.String
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderrFile:Ljava/io/File;
            invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
            invokestatic java.nio.file.Files.readAllBytes:(Ljava/nio/file/Path;)[B
            invokespecial java.lang.String.<init>:([B)V
            putfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderr:Ljava/lang/String;
         7: .line 92
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderrFile:Ljava/io/File;
            invokevirtual java.io.File.delete:()Z
            pop
         8: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/llvm/tests/pipe/CaptureNativeOutput;
    Exceptions:
      throws java.io.IOException

  public java.lang.String getStdOut();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
         0: .line 98
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.close:()V
         1: .line 99
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stdout:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/tests/pipe/CaptureNativeOutput;
    Exceptions:
      throws java.io.IOException

  public java.lang.String getStdErr();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
         0: .line 104
            aload 0 /* this */
            invokevirtual com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.close:()V
         1: .line 105
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput.stderr:Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.llvm.tests.pipe.CaptureNativeOutput this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/llvm/tests/pipe/CaptureNativeOutput;
    Exceptions:
      throws java.io.IOException

  private static native int startCapturing(int, java.lang.String);
    descriptor: (ILjava/lang/String;)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      fd            
      tempFilename  

  private static native void stopCapturing(int, int);
    descriptor: (II)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      oldStdout  
      oldStderr  
}
SourceFile: "CaptureNativeOutput.java"