ProcessTools.startProcess() creates process and read it's output error streams. 
So the any other using of corresponding Process.getInputStream() and 
Process.getErrorStream() doesn't get process streams.

This fix preserve process streams content and allow to read it after process 
completion. The another possible solution would be to throw exception when user 
tries to read already drained streams to fail tests earlier. However it 
complicates usage of ProcessTools.startProcess() methods.

The regression test has been provided with issue.

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

Commit messages:
 - 8233725: ProcessTools.startProcess() has output issues when using an 
OutputAnalyzer at the same time

Changes: https://git.openjdk.org/jdk/pull/13560/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13560&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8233725
  Stats: 180 lines in 3 files changed: 163 ins; 2 del; 15 mod
  Patch: https://git.openjdk.org/jdk/pull/13560.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13560/head:pull/13560

PR: https://git.openjdk.org/jdk/pull/13560

Reply via email to