RFR: 8364361: [process] java.lang.Process should implement close and be AutoCloseable [v2]

Roger Riggs rriggs at openjdk.org
Thu Aug 7 22:05:55 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:

  Updates from review comments:
   - Editorial improvements to javadoc
   - Exceptions that occur closing streams are quietly logged
     to the java.lang.Process system log as DEBUG
   - The prototype code attempting to wait for process exit is removed,
     it provided marginal benefit and raised complexity due to interrupt handling
   - Test updates for racy test cases that are not errors

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/26649/files
  - new: https://git.openjdk.org/jdk/pull/26649/files/51355da2..c04ee6e2

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26649&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26649&range=00-01

  Stats: 128 lines in 4 files changed: 45 ins; 34 del; 49 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