I filed the following issue to track this:
  https://bugs.openjdk.java.net/browse/JDK-8167161

-Chris.

On 04/10/16 13:52, David M. Lloyd wrote:
On 10/04/2016 03:58 AM, Langer, Christoph wrote:
Hi,

I think I would also support replacing
sun.net.ConnectionResetException with a publicly available
java.net.ConnectionResetException that subclasses
java.net.SocketException. But, as Chris mentions. a usage example
would be helpful.

At present you're going to be hard-pressed to find exiting code that
detects a connection reset IOException.  The reason is that, while you
*can* search for "Connection reset by peer" in the exception message,
that text varies by platform and, more importantly, by locale.  So it is
essentially impossible to detect reliably.

But Norman's use case is dead on: a connection reset happens under
common circumstances.  In particular, when a TCP socket is closed by the
peer before the peer has read all pending data, an RST is returned. This
happens very often - when a peer process is terminated for example, or
the peer encounters an unrelated exception and terminates the connection
abruptly, both of which happen very, very commonly in networked
applications.  For servers the choice today is to fill the log with
meaningless exception traces or lose potentially more serious problems
(EIO for example is something that almost always indicates Bad Things).

I also support this proposal.

-----Original Message-----
From: net-dev [mailto:net-dev-boun...@openjdk.java.net] On Behalf Of
Chris
Hegarty
Sent: Montag, 12. September 2016 17:07
To: Florian Weimer <fwei...@redhat.com>; Norman Maurer
<norman.mau...@googlemail.com>; net-dev@openjdk.java.net
Subject: Re: Introduce IOException subclass for ECONNRESET

On 12/09/16 14:50, Florian Weimer wrote:
On 08/23/2016 09:40 AM, Norman Maurer wrote:
Hi all,

I first asked this on nio-dev[0] but was asked to move this over to
here:

I wonder if it would be possible to add a new IOException sub-class
for ECONNRESET. Often you receive these errors if a remote peer closed
the connection and you try to read from it while using NIO. This is
very often not really something that concerns people and can just be
handled the same as a “normal close”.

So what are the other cases, where ECONNRESET may occur? What is
equivalent on non-Unix platforms, Windows for example?

 >> At the moment the only way to
detect this is to inspect the IOException message which is really
hacky.

Do you have examples of code that does this today?

I wonder if we could not add a special IOException sub-class
for this. Something like:

ConnectionResetException extends IOException {
}

Shouldn't it be a subclass of SocketException?

I think it would have to be a subclass of SocketException too, for
compatibility at least, since that is the type that is thrown
today.

sun.net.ConnectionResetException exists today, but I don't think
that it ever finds its way outside of the implementation. And is
of course not part of Java SE.

-Chris.



Reply via email to