RFR 8158023: SocketExceptions contain too little information sometimes

Langer, Christoph christoph.langer at sap.com
Mon Jun 27 07:42:17 UTC 2016


Hi,

eventually here is the - hopefully final - version of this fix:
http://cr.openjdk.java.net/~clanger/webrevs/8158023.3/

Now I leave JNU_ThrowByNameWithLastError untouched and I've also added conversion to the new function JNU_ThrowByNameWithMessageAndLastError. I've replaced JNU_ThrowByNameWithLastError with JNU_ThrowByNameWithMessageAndLastError in the java/net coding where I think it is appropriate (mostly in occasions when a SocketException is thrown kind of generically). @Paul: thanks for your suggestion regarding the output format but I would still prefer an output like "java.net.SocketException: ioctl SIOCGSIZIFCONF failed: Bad file number" vs. " java.net.SocketException: Bad file number (ioctl SIOCGSIZIFCONF failed)" as I'm always handing down a message to the new throw routine.

Hoping for a review :)

Best regards
Christoph

> -----Original Message-----
> From: Kenji Kazumura [mailto:kzr at jp.fujitsu.com]
> Sent: Mittwoch, 8. Juni 2016 02:51
> To: Langer, Christoph <christoph.langer at sap.com>
> Cc: net-dev at openjdk.java.net; nio-dev at openjdk.java.net; core-libs-
> dev at openjdk.java.net
> Subject: Re: RFR 8158023: SocketExceptions contain too little information
> sometimes
> 
> Christoph,
> 
> You should not remove conversion codes (platform string to Java String)
> at JNU_ThrowByNameWithLastError,
> and you have to add conversion codes at
> JNU_ThrowByNameWithMessageAndLastError.
> 
> It seems that you assume strerror returns only ascii characters, but actually
> not.
> It depends on the locale of your environment where java programs runs.
> 
> 
> -Kenji Kazumura
> 
> 
> In message
> <decc19cdab854bbeac7126cb8e236f1e at DEWDFE13DE11.global.corp.sap>
>    RFR 8158023: SocketExceptions contain too little information sometimes
>    "Langer, Christoph" <christoph.langer at sap.com> wrote:
> 
> > Hi all,
> >
> > please review the following change:
> > Webrev: http://cr.openjdk.java.net/~clanger/webrevs/8158023.1/
> > Bug: https://bugs.openjdk.java.net/browse/JDK-8158023
> >
> > During error analysis I stumbled over a place where I encountered a
> SocketException which was thrown along with some strerror information as
> message. I found it hard to find the originating code spot with that information.
> >
> > So I looked at the places where we throw exceptions, namely JNU_Throw...
> and NET_Throw... functions and came up with the following enhancement:
> > - NET_ThrowByNameWithLastError can go completely as it does not provide
> any benefit over JNU_ThrowByNameWithLastError.
> > - JNU_ThrowByNameWithLastError can be cleaned up.
> >
> > - I added JNU_ThrowByNameWithMessageAndLastError to print out a string
> like message + ": " + last error.
> >
> > - I went over all places where NET_ThrowByNameWithLastError is used and
> replaced it appropriately.
> >
> > Do you think this change is desirable/possible?
> >
> > Though it's mainly a net topic, I'm posting it to nio-dev and core-libs-dev as
> well as JNU_Throw... code affects all.
> >
> > Best regards
> > Christoph
> >


More information about the nio-dev mailing list