RFR 8158023: SocketExceptions contain too little information sometimes
christoph.langer at sap.com
Mon Jun 27 07:42:17 UTC 2016
eventually here is the - hopefully final - version of this fix:
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 :)
> -----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
> You should not remove conversion codes (platform string to Java String)
> at JNU_ThrowByNameWithLastError,
> and you have to add conversion codes at
> It seems that you assume strerror returns only ascii characters, but actually
> 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