RFR: 8364361: [process] java.lang.Process should implement Closeable [v25]

Roger Riggs rriggs at openjdk.org
Thu Oct 30 20:38:17 UTC 2025


> 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


More information about the core-libs-dev mailing list