Hi Alan,

looks good to me, +1.

Best regards
Christoph

> -----Original Message-----
> From: net-dev [mailto:net-dev-boun...@openjdk.java.net] On Behalf Of
> Alan Bateman
> Sent: Mittwoch, 14. März 2018 15:31
> To: OpenJDK Network Dev list <net-dev@openjdk.java.net>
> Subject: 8199329: Remove code that attempts to read bytes after connection
> reset reported
> 
> 
> Classic networking has some curious code to deal with connection resets.
> I needed to dig into ancient history to find the issues and original
> motivations.
> 
> When a connection reset is reported (usually ECONNRESET) then further
> attempts to read from the socket will typically return -1 (EOF). Classic
> networking papers over this so that further attempts with the socket
> APIs to read bytes will continue to throw SocketException "connection
> reset". Furthermore, it allows for cases where the platform can read
> bytes from the socket buffer after ECONNRESET has been reported. None of
> the main stream platforms do this and it's hard to imagine anything
> depending on such unpredictable behavior. I'm running into this odd code
> as part of cleanup to the read/write code paths and reducing them down
> to a single blocking call.
> 
> I would like to remove the legacy/undocumented behavior that attempts to
> read beyond the connection reset. The code to consistently throw
> IOException once ECONNRESET is returned is retained as it's possible
> that code relies on this.
> 
> The proposed changes are here:
>     http://cr.openjdk.java.net/~alanb/8199329/webrev/
> 
> All existing tests pass with these changes.
> 
> -Alan

Reply via email to