> The teardown of a Process launched by `ProcessBuilder` includes the closing > of streams and ensuring the termination of the process is the responsibility > of the caller. The `Process.close()` method provides a clear and obvious way > to ensure all the streams are closed and the process terminated. > > The try-with-resources statement is frequently used to open streams and > ensure they are closed on exiting the block. By implementing > `AutoClosable.close()` the completeness of closing the streams and process > termination can be done by try-with-resources. > > The actions of the `close()` method are to close each stream and destroy the > process if it has not terminated.
Roger Riggs has updated the pull request incrementally with one additional commit since the last revision: Replaced the test mechanism to force stream closes to throw exceptions. The previous mechanism was subject to race conditions and was complicated and fragile. The new mechanism interposes a stream implementation that closes the underlying stream and then throws a well known exception. It is much less sensitive to platform and race conditions. ------------- Changes: - all: https://git.openjdk.org/jdk/pull/26649/files - new: https://git.openjdk.org/jdk/pull/26649/files/c2072f7d..a1bcf5ac Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=26649&range=24 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26649&range=23-24 Stats: 118 lines in 1 file changed: 25 ins; 48 del; 45 mod Patch: https://git.openjdk.org/jdk/pull/26649.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/26649/head:pull/26649 PR: https://git.openjdk.org/jdk/pull/26649
