Christopher Hegarty - Sun Microsystems Ireland wrote:
Hi Alan, Michael,
The test has a connected TCP socket and performs individual writes of
only 2 bytes on one end. It does not read off the data on the other
end. After 8 writes, on the 9th, the write blocks. Clearly the send
buffer has not been exhausted, but after some experimenting it can be
shown that you can only write more data if some is read off.
This only occurs when both ends of the socket are on the same host.
This is a result of the Solaris TCP Fusion feature. See the bug
description for more details.
The solution is to amend the test to have the producer and consumer on
separate threads. Also, cleaned up a few NPE I noticed when running
the test on various systems.
Webrev:
http://cr.openjdk.java.net/~chegar/6934923/webrev.00/webrev/
-Chris.
Looks okay to me.
-Alan