RFR: 8356438: Update OutputAnalyzer to optionally print process output as it happens

Chen Liang liach at openjdk.org
Thu Jun 5 09:25:35 UTC 2025


On Mon, 2 Jun 2025 11:54:10 GMT, Alice Pellegrini <duke at openjdk.org> wrote:

> The implemented solution modifies the `OutputBuffer` implementation instead of the `OutputAnalyzer` implementation.
> This is because the **OutputBuffer implementation which handles processes** (LazyOutputBuffer) starts a thread in its constructor, so we would need to add a strange additional constructor parameter to the `OutputBuffer.of(Process, Charset)` static method, while the printing through to stdout (and stderr) only makes sense for LazyOutputBuffer.
> 
> I believe changing the config option from `outputanalyzer.verbose` to `output buffer.verbose` would make it cleaner, and avoid referencing the OutputAnalyzer in the OutputBuffer implementation.

test/lib/jdk/test/lib/process/OutputBuffer.java line 150:

> 148:       this.p = p;
> 149:       logProgress("Gathering output");
> 150:       boolean verbose = Boolean.valueOf(System.getProperty("outputanalyzer.verbose", "false"));

Suggestion:

      boolean verbose = Boolean.getBoolean("outputanalyzer.verbose");

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25587#discussion_r2121483594


More information about the core-libs-dev mailing list