final class java.lang.ProcessImpl extends java.lang.Process
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.lang.ProcessImpl
super_class: java.lang.Process
{
private static final jdk.internal.misc.JavaIOFileDescriptorAccess fdAccess;
descriptor: Ljdk/internal/misc/JavaIOFileDescriptorAccess;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean SUPPORTS_NORMAL_TERMINATION;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
private final int pid;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.ProcessHandleImpl processHandle;
descriptor: Ljava/lang/ProcessHandleImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int exitcode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean hasExited;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.io.OutputStream stdin;
descriptor: Ljava/io/OutputStream;
flags: (0x0002) ACC_PRIVATE
private java.io.InputStream stdout;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private java.io.InputStream stderr;
descriptor: Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
private java.lang.ProcessImpl$DeferredCloseInputStream stdout_inner_stream;
descriptor: Ljava/lang/ProcessImpl$DeferredCloseInputStream;
flags: (0x0002) ACC_PRIVATE
private static final java.lang.ProcessImpl$Platform platform;
descriptor: Ljava/lang/ProcessImpl$Platform;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ProcessImpl$LaunchMechanism launchMechanism;
descriptor: Ljava/lang/ProcessImpl$LaunchMechanism;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] helperpath;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$java$lang$ProcessImpl$Platform;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Ljava/lang/ProcessImpl;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic java.lang.ProcessImpl.$assertionsDisabled:Z
3: invokestatic jdk.internal.misc.SharedSecrets.getJavaIOFileDescriptorAccess:()Ljdk/internal/misc/JavaIOFileDescriptorAccess;
4: putstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
5: invokestatic java.lang.ProcessImpl$Platform.get:()Ljava/lang/ProcessImpl$Platform;
putstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
6: getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.launchMechanism:()Ljava/lang/ProcessImpl$LaunchMechanism;
putstatic java.lang.ProcessImpl.launchMechanism:Ljava/lang/ProcessImpl$LaunchMechanism;
7: getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.helperPath:()Ljava/lang/String;
invokestatic java.lang.ProcessImpl.toCString:(Ljava/lang/String;)[B
putstatic java.lang.ProcessImpl.helperpath:[B
8: invokestatic java.lang.ProcessImpl.init:()V
9: return
LocalVariableTable:
Start End Slot Name Signature
private static byte[] toCString(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.String.getBytes:()[B
astore 1
start local 1 3: aload 1
arraylength
iconst_1
iadd
newarray 8
astore 2
start local 2 4: aload 1
iconst_0
5: aload 2
iconst_0
6: aload 1
arraylength
7: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 2
aload 2
arraylength
iconst_1
isub
iconst_0
bastore
9: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 s Ljava/lang/String;
3 10 1 bytes [B
4 10 2 result [B
MethodParameters:
Name Flags
s
static java.lang.Process start(java.lang.String[], java.util.Map<java.lang.String, java.lang.String>, java.lang.String, java.lang.ProcessBuilder$Redirect[], boolean);
descriptor: ([Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
flags: (0x0008) ACC_STATIC
Code:
stack=11, locals=21, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: getstatic java.lang.ProcessImpl.$assertionsDisabled:Z
ifne 2
aload 0
ifnull 1
aload 0
arraylength
ifgt 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
arraylength
iconst_1
isub
anewarray byte[]
astore 5
start local 5 3: aload 5
arraylength
istore 6
start local 6 4: iconst_0
istore 7
start local 7 5: goto 9
6: StackMap locals: byte[][] int int
StackMap stack:
aload 5
iload 7
aload 0
iload 7
iconst_1
iadd
aaload
invokevirtual java.lang.String.getBytes:()[B
aastore
7: iload 6
aload 5
iload 7
aaload
arraylength
iadd
istore 6
8: iinc 7 1
StackMap locals:
StackMap stack:
9: iload 7
aload 5
arraylength
if_icmplt 6
end local 7 10: iload 6
newarray 8
astore 7
start local 7 11: iconst_0
istore 8
start local 8 12: aload 5
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 17
StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int top int int byte[][]
StackMap stack:
13: aload 12
iload 10
aaload
astore 9
start local 9 14: aload 9
iconst_0
aload 7
iload 8
aload 9
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
15: iload 8
aload 9
arraylength
iconst_1
iadd
iadd
istore 8
end local 9 16: iinc 10 1
StackMap locals:
StackMap stack:
17: iload 10
iload 11
if_icmplt 13
18: iconst_1
newarray 10
astore 9
start local 9 19: aload 1
aload 9
invokestatic java.lang.ProcessEnvironment.toEnvironmentBlock:(Ljava/util/Map;[I)[B
astore 10
start local 10 20: aconst_null
astore 12
start local 12 21: aconst_null
astore 13
start local 13 22: aconst_null
astore 14
start local 14 23: iconst_0
istore 15
start local 15 24: aload 3
ifnonnull 27
25: iconst_3
newarray 10
dup
iconst_0
iconst_m1
iastore
dup
iconst_1
iconst_m1
iastore
dup
iconst_2
iconst_m1
iastore
astore 11
start local 11 26: goto 66
end local 11 27: StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int
StackMap stack:
iconst_3
newarray 10
astore 11
start local 11 28: aload 3
iconst_0
aaload
getstatic java.lang.ProcessBuilder$Redirect.PIPE:Ljava/lang/ProcessBuilder$Redirect;
if_acmpne 31
29: aload 11
iconst_0
iconst_m1
iastore
30: goto 39
StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int
StackMap stack:
31: aload 3
iconst_0
aaload
getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
if_acmpne 34
32: aload 11
iconst_0
iconst_0
iastore
33: goto 39
StackMap locals:
StackMap stack:
34: aload 3
iconst_0
aaload
instanceof java.lang.ProcessBuilder$RedirectPipeImpl
ifeq 37
35: aload 11
iconst_0
getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 3
iconst_0
aaload
checkcast java.lang.ProcessBuilder$RedirectPipeImpl
invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
iastore
36: goto 39
37: StackMap locals:
StackMap stack:
new java.io.FileInputStream
dup
aload 3
iconst_0
aaload
invokevirtual java.lang.ProcessBuilder$Redirect.file:()Ljava/io/File;
invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
astore 12
38: aload 11
iconst_0
getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 12
invokevirtual java.io.FileInputStream.getFD:()Ljava/io/FileDescriptor;
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
iastore
39: StackMap locals:
StackMap stack:
aload 3
iconst_1
aaload
getstatic java.lang.ProcessBuilder$Redirect.PIPE:Ljava/lang/ProcessBuilder$Redirect;
if_acmpne 42
40: aload 11
iconst_1
iconst_m1
iastore
41: goto 53
StackMap locals:
StackMap stack:
42: aload 3
iconst_1
aaload
getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
if_acmpne 45
43: aload 11
iconst_1
iconst_1
iastore
44: goto 53
StackMap locals:
StackMap stack:
45: aload 3
iconst_1
aaload
instanceof java.lang.ProcessBuilder$RedirectPipeImpl
ifeq 49
46: aload 11
iconst_1
getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 3
iconst_1
aaload
checkcast java.lang.ProcessBuilder$RedirectPipeImpl
invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
iastore
47: iconst_1
istore 15
48: goto 53
49: StackMap locals:
StackMap stack:
new java.io.FileOutputStream
dup
aload 3
iconst_1
aaload
invokevirtual java.lang.ProcessBuilder$Redirect.file:()Ljava/io/File;
50: aload 3
iconst_1
aaload
invokevirtual java.lang.ProcessBuilder$Redirect.append:()Z
51: invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;Z)V
astore 13
52: aload 11
iconst_1
getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 13
invokevirtual java.io.FileOutputStream.getFD:()Ljava/io/FileDescriptor;
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
iastore
53: StackMap locals:
StackMap stack:
aload 3
iconst_2
aaload
getstatic java.lang.ProcessBuilder$Redirect.PIPE:Ljava/lang/ProcessBuilder$Redirect;
if_acmpne 56
54: aload 11
iconst_2
iconst_m1
iastore
55: goto 66
StackMap locals:
StackMap stack:
56: aload 3
iconst_2
aaload
getstatic java.lang.ProcessBuilder$Redirect.INHERIT:Ljava/lang/ProcessBuilder$Redirect;
if_acmpne 59
57: aload 11
iconst_2
iconst_2
iastore
58: goto 66
StackMap locals:
StackMap stack:
59: aload 3
iconst_2
aaload
instanceof java.lang.ProcessBuilder$RedirectPipeImpl
ifeq 62
60: aload 11
iconst_2
getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 3
iconst_2
aaload
checkcast java.lang.ProcessBuilder$RedirectPipeImpl
invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
iastore
61: goto 66
62: StackMap locals:
StackMap stack:
new java.io.FileOutputStream
dup
aload 3
iconst_2
aaload
invokevirtual java.lang.ProcessBuilder$Redirect.file:()Ljava/io/File;
63: aload 3
iconst_2
aaload
invokevirtual java.lang.ProcessBuilder$Redirect.append:()Z
64: invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;Z)V
astore 14
65: aload 11
iconst_2
getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 14
invokevirtual java.io.FileOutputStream.getFD:()Ljava/io/FileDescriptor;
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
iastore
66: StackMap locals:
StackMap stack:
new java.lang.ProcessImpl
dup
67: aload 0
iconst_0
aaload
invokestatic java.lang.ProcessImpl.toCString:(Ljava/lang/String;)[B
68: aload 7
aload 5
arraylength
69: aload 10
aload 9
iconst_0
iaload
70: aload 2
invokestatic java.lang.ProcessImpl.toCString:(Ljava/lang/String;)[B
71: aload 11
72: iload 15
73: iload 4
74: invokespecial java.lang.ProcessImpl.<init>:([B[BI[BI[B[IZZ)V
astore 16
start local 16 75: aload 3
ifnull 85
76: aload 11
iconst_0
iaload
iflt 79
77: aload 3
iconst_0
aaload
instanceof java.lang.ProcessBuilder$RedirectPipeImpl
ifeq 79
78: getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 3
iconst_0
aaload
checkcast java.lang.ProcessBuilder$RedirectPipeImpl
invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
aload 11
iconst_0
iaload
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
79: StackMap locals: java.lang.Process
StackMap stack:
aload 11
iconst_1
iaload
iflt 82
80: aload 3
iconst_1
aaload
instanceof java.lang.ProcessBuilder$RedirectPipeImpl
ifeq 82
81: getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 3
iconst_1
aaload
checkcast java.lang.ProcessBuilder$RedirectPipeImpl
invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
aload 11
iconst_1
iaload
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
82: StackMap locals:
StackMap stack:
aload 11
iconst_2
iaload
iflt 85
83: aload 3
iconst_2
aaload
instanceof java.lang.ProcessBuilder$RedirectPipeImpl
ifeq 85
84: getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 3
iconst_2
aaload
checkcast java.lang.ProcessBuilder$RedirectPipeImpl
invokevirtual java.lang.ProcessBuilder$RedirectPipeImpl.getFd:()Ljava/io/FileDescriptor;
aload 11
iconst_2
iaload
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
85: StackMap locals:
StackMap stack:
aload 16
astore 18
86: aload 12
ifnull 93
aload 12
invokevirtual java.io.FileInputStream.close:()V
goto 93
87: StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process
StackMap stack: java.lang.Throwable
astore 19
88: aload 13
ifnull 91
aload 13
invokevirtual java.io.FileOutputStream.close:()V
goto 91
89: StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 20
aload 14
ifnull 90
aload 14
invokevirtual java.io.FileOutputStream.close:()V
StackMap locals: java.lang.Throwable
StackMap stack:
90: aload 20
athrow
StackMap locals:
StackMap stack:
91: aload 14
ifnull 92
aload 14
invokevirtual java.io.FileOutputStream.close:()V
92: StackMap locals:
StackMap stack:
aload 19
athrow
93: StackMap locals:
StackMap stack:
aload 13
ifnull 96
aload 13
invokevirtual java.io.FileOutputStream.close:()V
goto 96
94: StackMap locals:
StackMap stack: java.lang.Throwable
astore 20
aload 14
ifnull 95
aload 14
invokevirtual java.io.FileOutputStream.close:()V
StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process top java.lang.Throwable
StackMap stack:
95: aload 20
athrow
StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] int[] java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream int java.lang.Process top java.lang.Process
StackMap stack:
96: aload 14
ifnull 97
aload 14
invokevirtual java.io.FileOutputStream.close:()V
97: StackMap locals:
StackMap stack:
aload 18
areturn
end local 16 end local 15 end local 11 98: StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream
StackMap stack: java.lang.Throwable
astore 17
99: aload 12
ifnull 106
aload 12
invokevirtual java.io.FileInputStream.close:()V
goto 106
100: StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 19
101: aload 13
ifnull 104
aload 13
invokevirtual java.io.FileOutputStream.close:()V
goto 104
102: StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable top java.lang.Throwable
StackMap stack: java.lang.Throwable
astore 20
aload 14
ifnull 103
aload 14
invokevirtual java.io.FileOutputStream.close:()V
StackMap locals: java.lang.Throwable
StackMap stack:
103: aload 20
athrow
StackMap locals:
StackMap stack:
104: aload 14
ifnull 105
aload 14
invokevirtual java.io.FileOutputStream.close:()V
105: StackMap locals:
StackMap stack:
aload 19
athrow
106: StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable
StackMap stack:
aload 13
ifnull 109
aload 13
invokevirtual java.io.FileOutputStream.close:()V
goto 109
107: StackMap locals:
StackMap stack: java.lang.Throwable
astore 20
aload 14
ifnull 108
aload 14
invokevirtual java.io.FileOutputStream.close:()V
StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable top top java.lang.Throwable
StackMap stack:
108: aload 20
athrow
StackMap locals: java.lang.String[] java.util.Map java.lang.String java.lang.ProcessBuilder$Redirect[] int byte[][] int byte[] int int[] byte[] top java.io.FileInputStream java.io.FileOutputStream java.io.FileOutputStream top top java.lang.Throwable
StackMap stack:
109: aload 14
ifnull 110
aload 14
invokevirtual java.io.FileOutputStream.close:()V
110: StackMap locals:
StackMap stack:
aload 17
athrow
end local 14 end local 13 end local 12 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 111 0 cmdarray [Ljava/lang/String;
0 111 1 environment Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
0 111 2 dir Ljava/lang/String;
0 111 3 redirects [Ljava/lang/ProcessBuilder$Redirect;
0 111 4 redirectErrorStream Z
3 111 5 args [[B
4 111 6 size I
5 10 7 i I
11 111 7 argBlock [B
12 111 8 i I
14 16 9 arg [B
19 111 9 envc [I
20 111 10 envBlock [B
26 27 11 std_fds [I
28 98 11 std_fds [I
21 111 12 f0 Ljava/io/FileInputStream;
22 111 13 f1 Ljava/io/FileOutputStream;
23 111 14 f2 Ljava/io/FileOutputStream;
24 98 15 forceNullOutputStream Z
75 98 16 p Ljava/lang/Process;
Exception table:
from to target type
86 87 87 any
88 89 89 any
93 94 94 any
23 86 98 any
99 100 100 any
101 102 102 any
106 107 107 any
Exceptions:
throws java.io.IOException
Signature: ([Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;Ljava/lang/String;[Ljava/lang/ProcessBuilder$Redirect;Z)Ljava/lang/Process;
MethodParameters:
Name Flags
cmdarray
environment
dir
redirects
redirectErrorStream
private native int forkAndExec(int, byte[], byte[], byte[], int, byte[], int, byte[], int[], boolean);
descriptor: (I[B[B[BI[BI[B[IZ)I
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
mode
helperpath
prog
argBlock
argc
envBlock
envc
dir
fds
redirectErrorStream
private void <init>(byte[], byte[], int, byte[], int, byte[], int[], boolean, boolean);
descriptor: ([B[BI[BI[B[IZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=11, args_size=10
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 0: aload 0
invokespecial java.lang.Process.<init>:()V
1: aload 0
aload 0
getstatic java.lang.ProcessImpl.launchMechanism:Ljava/lang/ProcessImpl$LaunchMechanism;
invokevirtual java.lang.ProcessImpl$LaunchMechanism.ordinal:()I
iconst_1
iadd
2: getstatic java.lang.ProcessImpl.helperpath:[B
3: aload 1
4: aload 2
iload 3
5: aload 4
iload 5
6: aload 6
7: aload 7
8: iload 9
9: invokevirtual java.lang.ProcessImpl.forkAndExec:(I[B[B[BI[BI[B[IZ)I
putfield java.lang.ProcessImpl.pid:I
10: aload 0
aload 0
getfield java.lang.ProcessImpl.pid:I
i2l
invokestatic java.lang.ProcessHandleImpl.getInternal:(J)Ljava/lang/ProcessHandleImpl;
putfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
11: aload 0
aload 7
iload 8
invokedynamic run(Ljava/lang/ProcessImpl;[IZ)Ljava/security/PrivilegedExceptionAction;
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;
java/lang/ProcessImpl.lambda$0([IZ)Ljava/lang/Void; (7)
()Ljava/lang/Void;
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
pop
12: goto 15
StackMap locals: java.lang.ProcessImpl byte[] byte[] int byte[] int byte[] int[] int int
StackMap stack: java.security.PrivilegedActionException
13: astore 10
start local 10 14: aload 10
invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
checkcast java.io.IOException
athrow
end local 10 15: StackMap locals:
StackMap stack:
return
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/lang/ProcessImpl;
0 16 1 prog [B
0 16 2 argBlock [B
0 16 3 argc I
0 16 4 envBlock [B
0 16 5 envc I
0 16 6 dir [B
0 16 7 fds [I
0 16 8 forceNullOutputStream Z
0 16 9 redirectErrorStream Z
14 15 10 ex Ljava/security/PrivilegedActionException;
Exception table:
from to target type
11 12 13 Class java.security.PrivilegedActionException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
prog final
argBlock final
argc final
envBlock final
envc final
dir final
fds final
forceNullOutputStream final
redirectErrorStream final
static java.io.FileDescriptor newFileDescriptor(int);
descriptor: (I)Ljava/io/FileDescriptor;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.io.FileDescriptor
dup
invokespecial java.io.FileDescriptor.<init>:()V
astore 1
start local 1 1: getstatic java.lang.ProcessImpl.fdAccess:Ljdk/internal/misc/JavaIOFileDescriptorAccess;
aload 1
iload 0
invokeinterface jdk.internal.misc.JavaIOFileDescriptorAccess.set:(Ljava/io/FileDescriptor;I)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 fd I
1 3 1 fileDescriptor Ljava/io/FileDescriptor;
MethodParameters:
Name Flags
fd
void initStreams(int[], boolean);
descriptor: ([IZ)V
flags: (0x0000)
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:()[I
getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 1
2: 1
3: 15
4: 37
default: 51
}
1: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
iaload
iconst_m1
if_icmpne 3
2: getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
goto 4
3: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.lang.ProcessImpl$ProcessPipeOutputStream
dup
aload 1
iconst_0
iaload
invokespecial java.lang.ProcessImpl$ProcessPipeOutputStream.<init>:(I)V
4: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.OutputStream
putfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
5: aload 0
aload 1
iconst_1
iaload
iconst_m1
if_icmpeq 6
iload 2
ifeq 7
6: StackMap locals:
StackMap stack: java.lang.ProcessImpl
getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
goto 8
7: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.lang.ProcessImpl$ProcessPipeInputStream
dup
aload 1
iconst_1
iaload
invokespecial java.lang.ProcessImpl$ProcessPipeInputStream.<init>:(I)V
8: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.InputStream
putfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
9: aload 0
aload 1
iconst_2
iaload
iconst_m1
if_icmpne 11
10: getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
goto 12
11: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.lang.ProcessImpl$ProcessPipeInputStream
dup
aload 1
iconst_2
iaload
invokespecial java.lang.ProcessImpl$ProcessPipeInputStream.<init>:(I)V
12: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.InputStream
putfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
13: aload 0
getfield java.lang.ProcessImpl.pid:I
i2l
iconst_1
invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
java/lang/ProcessImpl.lambda$1(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object; (7)
(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
pop
14: goto 52
15: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
iaload
iconst_m1
if_icmpne 17
16: getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
goto 20
17: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.io.BufferedOutputStream
dup
18: new java.io.FileOutputStream
dup
aload 1
iconst_0
iaload
invokestatic java.lang.ProcessImpl.newFileDescriptor:(I)Ljava/io/FileDescriptor;
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/FileDescriptor;)V
19: invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
20: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.OutputStream
putfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
21: aload 0
aload 1
iconst_1
iaload
iconst_m1
if_icmpeq 22
iload 2
ifeq 23
22: StackMap locals:
StackMap stack: java.lang.ProcessImpl
getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
goto 30
23: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.io.BufferedInputStream
dup
24: aload 0
25: new java.lang.ProcessImpl$DeferredCloseInputStream
dup
26: aload 1
iconst_1
iaload
invokestatic java.lang.ProcessImpl.newFileDescriptor:(I)Ljava/io/FileDescriptor;
27: invokespecial java.lang.ProcessImpl$DeferredCloseInputStream.<init>:(Ljava/io/FileDescriptor;)V
28: dup_x1
putfield java.lang.ProcessImpl.stdout_inner_stream:Ljava/lang/ProcessImpl$DeferredCloseInputStream;
29: invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
30: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.InputStream
putfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
31: aload 0
aload 1
iconst_2
iaload
iconst_m1
if_icmpne 33
32: getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
goto 34
33: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.lang.ProcessImpl$DeferredCloseInputStream
dup
aload 1
iconst_2
iaload
invokestatic java.lang.ProcessImpl.newFileDescriptor:(I)Ljava/io/FileDescriptor;
invokespecial java.lang.ProcessImpl$DeferredCloseInputStream.<init>:(Ljava/io/FileDescriptor;)V
34: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.InputStream
putfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
35: aload 0
getfield java.lang.ProcessImpl.pid:I
i2l
iconst_1
invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
java/lang/ProcessImpl.lambda$2(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object; (7)
(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
pop
36: goto 52
37: StackMap locals:
StackMap stack:
aload 0
aload 1
iconst_0
iaload
iconst_m1
if_icmpne 39
38: getstatic java.lang.ProcessBuilder$NullOutputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullOutputStream;
goto 40
39: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.lang.ProcessImpl$ProcessPipeOutputStream
dup
aload 1
iconst_0
iaload
invokespecial java.lang.ProcessImpl$ProcessPipeOutputStream.<init>:(I)V
40: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.OutputStream
putfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
41: aload 0
aload 1
iconst_1
iaload
iconst_m1
if_icmpeq 42
iload 2
ifeq 43
42: StackMap locals:
StackMap stack: java.lang.ProcessImpl
getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
goto 44
43: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
dup
aload 1
iconst_1
iaload
invokespecial java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.<init>:(I)V
44: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.InputStream
putfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
45: aload 0
aload 1
iconst_2
iaload
iconst_m1
if_icmpne 47
46: getstatic java.lang.ProcessBuilder$NullInputStream.INSTANCE:Ljava/lang/ProcessBuilder$NullInputStream;
goto 48
47: StackMap locals:
StackMap stack: java.lang.ProcessImpl
new java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
dup
aload 1
iconst_2
iaload
invokespecial java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.<init>:(I)V
48: StackMap locals: java.lang.ProcessImpl int[] int
StackMap stack: java.lang.ProcessImpl java.io.InputStream
putfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
49: aload 0
getfield java.lang.ProcessImpl.pid:I
i2l
iconst_1
invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
aload 0
invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
java/lang/ProcessImpl.lambda$3(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object; (7)
(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
invokevirtual java.util.concurrent.CompletableFuture.handle:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
pop
50: goto 52
51: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unsupported platform: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
52: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Ljava/lang/ProcessImpl;
0 53 1 fds [I
0 53 2 forceNullOutputStream Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fds
forceNullOutputStream
public java.io.OutputStream getOutputStream();
descriptor: ()Ljava/io/OutputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ProcessImpl;
public java.io.InputStream getInputStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ProcessImpl;
public java.io.InputStream getErrorStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ProcessImpl;
public synchronized int waitFor();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifeq 1
3: aload 0
getfield java.lang.ProcessImpl.exitcode:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/ProcessImpl;
Exceptions:
throws java.lang.InterruptedException
public synchronized boolean waitFor(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 3 0: aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 4
start local 4 1: aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifeq 2
iconst_1
ireturn
2: StackMap locals: long
StackMap stack:
lload 1
lconst_0
lcmp
ifgt 3
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lload 4
ladd
lstore 6
start local 6 4: StackMap locals: long
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
aload 0
lload 4
invokevirtual java.util.concurrent.TimeUnit.timedWait:(Ljava/lang/Object;J)V
5: aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifeq 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
lload 6
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 4
8: lload 4
lconst_0
9: lcmp
ifgt 4
10: aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ireturn
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/ProcessImpl;
0 11 1 timeout J
0 11 3 unit Ljava/util/concurrent/TimeUnit;
1 11 4 remainingNanos J
4 11 6 deadline J
Exceptions:
throws java.lang.InterruptedException
MethodParameters:
Name Flags
timeout
unit
public synchronized int exitValue();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifne 2
1: new java.lang.IllegalThreadStateException
dup
ldc "process hasn't exited"
invokespecial java.lang.IllegalThreadStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.exitcode:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ProcessImpl;
private void destroy(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: invokestatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:()[I
getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 1
2: 1
3: 18
4: 1
default: 33
}
1: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
2: aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifne 4
3: aload 0
getfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
iload 1
invokevirtual java.lang.ProcessHandleImpl.destroyProcess:(Z)Z
pop
4: StackMap locals: java.lang.ProcessImpl
StackMap stack:
aload 2
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
9: goto 11
StackMap locals:
StackMap stack: java.io.IOException
10: pop
11: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
12: goto 14
StackMap locals:
StackMap stack: java.io.IOException
13: pop
14: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
15: goto 34
StackMap locals:
StackMap stack: java.io.IOException
16: pop
17: goto 34
18: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
19: aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifne 21
20: aload 0
getfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
iload 1
invokevirtual java.lang.ProcessHandleImpl.destroyProcess:(Z)Z
pop
21: StackMap locals: java.lang.ProcessImpl
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.close:()V
22: aload 0
getfield java.lang.ProcessImpl.stdout_inner_stream:Ljava/lang/ProcessImpl$DeferredCloseInputStream;
ifnull 24
23: aload 0
getfield java.lang.ProcessImpl.stdout_inner_stream:Ljava/lang/ProcessImpl$DeferredCloseInputStream;
aload 0
getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
invokevirtual java.lang.ProcessImpl$DeferredCloseInputStream.closeDeferred:(Ljava/io/InputStream;)V
24: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
instanceof java.lang.ProcessImpl$DeferredCloseInputStream
ifeq 29
25: aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
checkcast java.lang.ProcessImpl$DeferredCloseInputStream
26: aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
invokevirtual java.lang.ProcessImpl$DeferredCloseInputStream.closeDeferred:(Ljava/io/InputStream;)V
27: goto 29
StackMap locals:
StackMap stack: java.io.IOException
28: pop
29: StackMap locals:
StackMap stack:
aload 2
monitorexit
30: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
31: aload 2
monitorexit
32: athrow
33: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unsupported platform: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic java.lang.ProcessImpl.platform:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
34: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljava/lang/ProcessImpl;
0 35 1 force Z
Exception table:
from to target type
2 5 6 any
6 7 6 any
8 9 10 Class java.io.IOException
11 12 13 Class java.io.IOException
14 15 16 Class java.io.IOException
21 27 28 Class java.io.IOException
19 30 31 any
31 32 31 any
MethodParameters:
Name Flags
force
public java.util.concurrent.CompletableFuture<java.lang.Process> onExit();
descriptor: ()Ljava/util/concurrent/CompletableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ProcessImpl.pid:I
i2l
iconst_0
invokestatic java.lang.ProcessHandleImpl.completion:(JZ)Ljava/util/concurrent/CompletableFuture;
1: aload 0
invokedynamic apply(Ljava/lang/ProcessImpl;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
java/lang/ProcessImpl.lambda$4(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Process; (7)
(Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Process;
invokevirtual java.util.concurrent.CompletableFuture.handleAsync:(Ljava/util/function/BiFunction;)Ljava/util/concurrent/CompletableFuture;
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ProcessImpl;
Signature: ()Ljava/util/concurrent/CompletableFuture<Ljava/lang/Process;>;
public java.lang.ProcessHandle toHandle();
descriptor: ()Ljava/lang/ProcessHandle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
new java.lang.RuntimePermission
dup
ldc "manageProcess"
invokespecial java.lang.RuntimePermission.<init>:(Ljava/lang/String;)V
invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
3: StackMap locals: java.lang.SecurityManager
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.processHandle:Ljava/lang/ProcessHandleImpl;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/lang/ProcessImpl;
1 4 1 sm Ljava/lang/SecurityManager;
public boolean supportsNormalTermination();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ProcessImpl;
public void destroy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual java.lang.ProcessImpl.destroy:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ProcessImpl;
public java.lang.Process destroyForcibly();
descriptor: ()Ljava/lang/Process;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual java.lang.ProcessImpl.destroy:(Z)V
1: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ProcessImpl;
public long pid();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ProcessImpl.pid:I
i2l
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/lang/ProcessImpl;
public synchronized boolean isAlive();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/lang/ProcessImpl;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Process[pid="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.lang.ProcessImpl.pid:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
1: ldc ", exitValue="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.lang.ProcessImpl.hasExited:Z
ifeq 2
aload 0
getfield java.lang.ProcessImpl.exitcode:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
goto 3
StackMap locals:
StackMap stack: java.lang.StringBuilder
2: ldc "\"not exited\""
StackMap locals: java.lang.ProcessImpl
StackMap stack: java.lang.StringBuilder java.lang.Comparable
3: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4: ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/lang/ProcessImpl;
private static native void init();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
static int[] $SWITCH_TABLE$java$lang$ProcessImpl$Platform();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic java.lang.ProcessImpl$Platform.values:()[Ljava/lang/ProcessImpl$Platform;
arraylength
newarray 10
astore 0
2: aload 0
getstatic java.lang.ProcessImpl$Platform.AIX:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
iconst_4
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic java.lang.ProcessImpl$Platform.BSD:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic java.lang.ProcessImpl$Platform.LINUX:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
iconst_1
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic java.lang.ProcessImpl$Platform.SOLARIS:Ljava/lang/ProcessImpl$Platform;
invokevirtual java.lang.ProcessImpl$Platform.ordinal:()I
iconst_3
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic java.lang.ProcessImpl.$SWITCH_TABLE$java$lang$ProcessImpl$Platform:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
private java.lang.Void lambda$0(int[], boolean);
descriptor: ([IZ)Ljava/lang/Void;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 0: aload 0
aload 1
iload 2
invokevirtual java.lang.ProcessImpl.initStreams:([IZ)V
1: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/lang/ProcessImpl;
Exceptions:
throws java.lang.Exception
private java.lang.Object lambda$1(java.lang.Integer, java.lang.Throwable);
descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 3
monitorenter
1: aload 0
aload 1
ifnonnull 2
iconst_m1
goto 3
StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
StackMap stack: java.lang.ProcessImpl
2: aload 1
invokevirtual java.lang.Integer.intValue:()I
StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
StackMap stack: java.lang.ProcessImpl int
3: putfield java.lang.ProcessImpl.exitcode:I
4: aload 0
iconst_1
putfield java.lang.ProcessImpl.hasExited:Z
5: aload 0
invokevirtual java.lang.Object.notifyAll:()V
6: aload 3
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
instanceof java.lang.ProcessImpl$ProcessPipeInputStream
ifeq 12
11: aload 0
getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
checkcast java.lang.ProcessImpl$ProcessPipeInputStream
invokevirtual java.lang.ProcessImpl$ProcessPipeInputStream.processExited:()V
12: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
instanceof java.lang.ProcessImpl$ProcessPipeInputStream
ifeq 14
13: aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
checkcast java.lang.ProcessImpl$ProcessPipeInputStream
invokevirtual java.lang.ProcessImpl$ProcessPipeInputStream.processExited:()V
14: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
instanceof java.lang.ProcessImpl$ProcessPipeOutputStream
ifeq 16
15: aload 0
getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
checkcast java.lang.ProcessImpl$ProcessPipeOutputStream
invokevirtual java.lang.ProcessImpl$ProcessPipeOutputStream.processExited:()V
16: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/lang/ProcessImpl;
0 17 1 exitcode Ljava/lang/Integer;
0 17 2 throwable Ljava/lang/Throwable;
Exception table:
from to target type
1 7 8 any
8 9 8 any
private java.lang.Object lambda$2(java.lang.Integer, java.lang.Throwable);
descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 3
monitorenter
1: aload 0
aload 1
ifnonnull 2
iconst_m1
goto 3
StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
StackMap stack: java.lang.ProcessImpl
2: aload 1
invokevirtual java.lang.Integer.intValue:()I
StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
StackMap stack: java.lang.ProcessImpl int
3: putfield java.lang.ProcessImpl.exitcode:I
4: aload 0
iconst_1
putfield java.lang.ProcessImpl.hasExited:Z
5: aload 0
invokevirtual java.lang.Object.notifyAll:()V
6: aload 3
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/lang/ProcessImpl;
0 11 1 exitcode Ljava/lang/Integer;
0 11 2 throwable Ljava/lang/Throwable;
Exception table:
from to target type
1 7 8 any
8 9 8 any
private java.lang.Object lambda$3(java.lang.Integer, java.lang.Throwable);
descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Object;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 3
monitorenter
1: aload 0
aload 1
ifnonnull 2
iconst_m1
goto 3
StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
StackMap stack: java.lang.ProcessImpl
2: aload 1
invokevirtual java.lang.Integer.intValue:()I
StackMap locals: java.lang.ProcessImpl java.lang.Integer java.lang.Throwable java.lang.ProcessImpl
StackMap stack: java.lang.ProcessImpl int
3: putfield java.lang.ProcessImpl.exitcode:I
4: aload 0
iconst_1
putfield java.lang.ProcessImpl.hasExited:Z
5: aload 0
invokevirtual java.lang.Object.notifyAll:()V
6: aload 3
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
instanceof java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
ifeq 12
11: aload 0
getfield java.lang.ProcessImpl.stdout:Ljava/io/InputStream;
checkcast java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
invokevirtual java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.processExited:()V
12: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
instanceof java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
ifeq 14
13: aload 0
getfield java.lang.ProcessImpl.stderr:Ljava/io/InputStream;
checkcast java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream
invokevirtual java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream.processExited:()V
14: StackMap locals:
StackMap stack:
aload 0
getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
instanceof java.lang.ProcessImpl$ProcessPipeOutputStream
ifeq 16
15: aload 0
getfield java.lang.ProcessImpl.stdin:Ljava/io/OutputStream;
checkcast java.lang.ProcessImpl$ProcessPipeOutputStream
invokevirtual java.lang.ProcessImpl$ProcessPipeOutputStream.processExited:()V
16: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Ljava/lang/ProcessImpl;
0 17 1 exitcode Ljava/lang/Integer;
0 17 2 throwable Ljava/lang/Throwable;
Exception table:
from to target type
1 7 8 any
8 9 8 any
private java.lang.Process lambda$4(java.lang.Integer, java.lang.Throwable);
descriptor: (Ljava/lang/Integer;Ljava/lang/Throwable;)Ljava/lang/Process;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.lang.ProcessImpl.waitFor:()I
pop
2: goto 6
3: StackMap locals:
StackMap stack: java.lang.InterruptedException
pop
4: iconst_1
istore 3
5: goto 1
6: StackMap locals:
StackMap stack:
iload 3
ifeq 8
7: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
8: StackMap locals:
StackMap stack:
aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/lang/ProcessImpl;
0 9 1 unusedExitStatus Ljava/lang/Integer;
0 9 2 unusedThrowable Ljava/lang/Throwable;
1 9 3 interrupted Z
Exception table:
from to target type
1 2 3 Class java.lang.InterruptedException
}
SourceFile: "ProcessImpl.java"
NestMembers:
java.lang.ProcessImpl$DeferredCloseInputStream java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream java.lang.ProcessImpl$LaunchMechanism java.lang.ProcessImpl$Platform java.lang.ProcessImpl$ProcessPipeInputStream java.lang.ProcessImpl$ProcessPipeOutputStream
InnerClasses:
NullInputStream = java.lang.ProcessBuilder$NullInputStream of java.lang.ProcessBuilder
NullOutputStream = java.lang.ProcessBuilder$NullOutputStream of java.lang.ProcessBuilder
public abstract Redirect = java.lang.ProcessBuilder$Redirect of java.lang.ProcessBuilder
RedirectPipeImpl = java.lang.ProcessBuilder$RedirectPipeImpl of java.lang.ProcessBuilder
private DeferredCloseInputStream = java.lang.ProcessImpl$DeferredCloseInputStream of java.lang.ProcessImpl
private DeferredCloseProcessPipeInputStream = java.lang.ProcessImpl$DeferredCloseProcessPipeInputStream of java.lang.ProcessImpl
private final LaunchMechanism = java.lang.ProcessImpl$LaunchMechanism of java.lang.ProcessImpl
private final Platform = java.lang.ProcessImpl$Platform of java.lang.ProcessImpl
private ProcessPipeInputStream = java.lang.ProcessImpl$ProcessPipeInputStream of java.lang.ProcessImpl
private ProcessPipeOutputStream = java.lang.ProcessImpl$ProcessPipeOutputStream of java.lang.ProcessImpl
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles