RFR 8144906: Fix jshell's ToolBasicTest
Jan Lahoda
jan.lahoda at oracle.com
Wed Dec 9 15:24:41 UTC 2015
Hello,
The ToolBasicTest is @ignored now, as it fails on some platforms. I am
proposing a partial fix for that, the patch is available here:
http://cr.openjdk.java.net/~jlahoda/8144906/webrev.00/
Notes:
-currently, there are three communication channels between the
RemoteAgent process and the main JShell process: the command socket and
RemoteAgent's out and err. The problem is that it is not easy to
synchronize events between these channels, so it may happen that the
command is already finished, while the out and err has not been fully
processed yet. My proposal here is to change the System.out and
System.err so that these also use the socket stream, so that there is
(normally) only one communication channel, allowing us to fully process
the out/err before finishing a command. This should also fix
JDK-8131013. Note I kept the existing code to copy the RemoteAgent's
stdout/stderr, just in case the RemoteAgent prints something there (for
debugging, for example), even though this shouldn't be typically used.
-unfortunately, there are still some problems on Solaris, which I wasn't
able to debug yet, so the test is excluded on Solaris.
-I added synchronization to JDIConnection, which should ensure proper
access to the fields, and avoid the need to catch the NPE in JDIConnection.
-ReplToolTesting now converts the platform's line endings to '\n', to
eliminate platform specific problems with line endings.
How does this look?
Thanks,
Jan
More information about the kulla-dev
mailing list