I need a reviewer for this tiny change. The shutdown(2) call fails with ENOTCONN when the socket is not connected. This seems to have different interpretations, at least for the case where the connection has been reset by the peer. Solaris and Windows do not return the error for this case, Linux does, and this can cause applications using SocketChannel.shutdown{Input,Output} (or the adapter equivalents) to fail intermittently. Grizzly and others have run into this. We don't see this with classic networking because the return value isn't checked. The proposed fix is to ignore this specific error, which is harmless because the socket channel implementation checks the channel state before calling shutdown. The webrev is here:
 http://cr.openjdk.java.net/~alanb/4516760/webrev.00/

Thanks,
Alan.

Reply via email to