Fixed the forkAndExec native signatures to include throws IOException to match ProcessImpl's version
This makes it more obvious that the calls in LinuxProcess.prepareProcess can throw on errors
Moved calls to LinuxProcess.closePipes() from run() and start() into prepareProcess in a try/finally block around calls to the JVM's forkAndExec function
This way, if forkAndExec throws (which it does, on failure, as the signature change highlights) the *Widow descriptors are all closed
The non-*Widow ends of the pipes are closed in onExit, so they are already handled after failures
Removed BasePosixProcess.checkLaunch
OsxProcess was the only place calling it, but OsxProcess didn't override it (so the call did nothing)
LinuxProcess override it, but since it was switched to using the JVM's forkAndExec function it no longer calls it, so the override was just dead code
Simplified BasePosixProcess.initFailureCleanup
Updated some BasePosixProcess error paths to log their exceptions
forkAndExec
native signatures to includethrows IOException
to matchProcessImpl
's versionLinuxProcess.prepareProcess
can throw on errorsLinuxProcess.closePipes()
fromrun()
andstart()
intoprepareProcess
in atry
/finally
block around calls to the JVM'sforkAndExec
functionforkAndExec
throws (which it does, on failure, as the signature change highlights) the*Widow
descriptors are all closed*Widow
ends of the pipes are closed inonExit
, so they are already handled after failuresBasePosixProcess.checkLaunch
OsxProcess
was the only place calling it, butOsxProcess
didn't override it (so the call did nothing)LinuxProcess
override it, but since it was switched to using the JVM'sforkAndExec
function it no longer calls it, so the override was just dead codeBasePosixProcess.initFailureCleanup
BasePosixProcess
error paths to log their exceptions