RFR 8141526: Allow to collect stdout/stderr from the FinalizationRunner even before the process returns

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Fri Nov 6 13:36:09 UTC 2015


Please, review the following test change

Issue : https://bugs.openjdk.java.net/browse/JDK-8141526
Webrev:
top> http://cr.openjdk.java.net/~jbachorik/8141526/webrev.00
hotspot> http://cr.openjdk.java.net/~jbachorik/8141526/webrev.00/hotspot
jdk> http://cr.openjdk.java.net/~jbachorik/8141526/webrev.00/jdk

After the fix for https://bugs.openjdk.java.net/browse/JDK-8135188 we 
are not able to get the debug info about the run of the launcher 
FinalizationRunner application in case it gets stuck and harness times 
out. This is because the stdout/err of the application started via 
ProcessTools.executeProcess() is collected only after the application 
has exited.

The solution is to use ProcessTools.startProcess() and consume the 
application stdout/err in a streaming mode. Because this method has only 
been available in the 'jdk' version of ProcessTools and not in the 
'hotspot' one I decided to merge both of those versions and place the 
merged version into the shared location 'test/lib/share/classes/'. 
During this I decided to change the package for the shared ProcessTools 
class to be 'jdk.test.lib.process' to be more in line with the way this 
shared library is structured. I had to move few other lib classes 
required by ProcessTools to the shared lib as well. All the moved lib 
classes have been marked as deprecated in their original location.


Thanks,

-JB-



More information about the serviceability-dev mailing list