RFR(S): 8198655: test/lib/jdk/test/lib/apps/LingeredApp shouldn't inherit cout/cerr
Chris Plummer
chris.plummer at oracle.com
Mon Mar 12 15:56:35 UTC 2018
On 3/12/18 3:27 AM, Langer, Christoph wrote:
> Hi Chris,
>
>> Hi Chris,
>>
>> On 10/03/2018 6:46 AM, Chris Plummer wrote:
>>> Hello,
>>>
>>> Please help review the following:
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8198655
>>> http://cr.openjdk.java.net/~cjplummer/8198655/webrev.00/webrev/
>>>
>>> In the end there were two issues. The first was that the
>>> pb.redirectError() call was redirecting the LingeredApp's stderr to the
>>> console, which we don't want. The second was that nothing was capturing
>>> the LingeredApp's output and sending it to the driver app's output (jtr
>>> file). These changes make all the LingeredApp's output end up in the jtr
>>> file.
>> It isn't clear to me how the interleaving of the two streams by the two
>> threads is handled in the copy routine. Are we guaranteed to get
>> complete lines of output from each stream before writing to System.out?
> Would perhaps the use of a BufferedReader in this place be appropriate, using readLine()?
Hi Christoph,
That would be an improvement to the interleaving of stderr and stdout,
although there could still be issues. For example, if the test
intentionally left out newlines as it built a long line that might take
a while to construct (think of printing a "." each second or something
like that). Also, if the last line was missing a newline, it would never
be printed.
thanks,
Chris
>
> Another small remark: The indentation of line 361" } catch (IOException e) {" seems too deep.
>
> Best regards
> Christoph
More information about the serviceability-dev
mailing list