Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
New
Description
Passing JVM options that dump something to output streams before they are intercepted (-verbose:gc, -verbose:class) will break the communication
between the runner and the master.
Currently junit4 communicates with forked processes via stdout or stderr (depending on the JVM and which stream the JVM uses to dump crash infos). This is done for efficiency since it's a natural blocking pipe between the two processes. I forgot that the jvm can:
1) use process streams to dump verbose logs (gc, classes, jit),
2) use process streams directly, bypassing System.* overrides, to dump warnings.
This can be solved my moving the communication layer to another pipe or to a socket. I'll play with the options.