<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Hi Paul,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Ok, you kind of got me convinced and it is also a quite simple modification. I changed from “java.net.SocketException:
 ioctl SIOCGSIZIFCONF failed: Bad file number” to “java.net.SocketException: Bad file number (ioctl SIOCGSIZIFCONF failed)” like you suggested.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">The update is in place:
<a href="http://cr.openjdk.java.net/~clanger/webrevs/8158023.3/">http://cr.openjdk.java.net/~clanger/webrevs/8158023.3/</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Now I finally need a review…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Best regards<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Christoph<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Paul Benedict [mailto:pbenedict@apache.org]
<br>
<b>Sent:</b> Montag, 27. Juni 2016 18:15<br>
<b>To:</b> Langer, Christoph <christoph.langer@sap.com><br>
<b>Cc:</b> Kenji Kazumura <kzr@jp.fujitsu.com>; Chris Hegarty <chris.hegarty@oracle.com>; nio-dev@openjdk.java.net; core-libs-dev@openjdk.java.net; net-dev@openjdk.java.net<br>
<b>Subject:</b> Re: RFR 8158023: SocketExceptions contain too little information sometimes<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Christoph, I didn't understand your explanation on your message preference. Typically root cause information is printed last, not first. Another reason not to change the ordering of the exception message is that applications may be looking
 at existing strings. For this example, if I may presume "Bad file number" is an existing message, I would defer to the possibility applications may be exist that test for that message condition.<o:p></o:p></p>
<div>
<p class="MsoNormal"><br clear="all">
<o:p></o:p></p>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">Cheers,<br>
Paul<o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On Mon, Jun 27, 2016 at 2:42 AM, Langer, Christoph <<a href="mailto:christoph.langer@sap.com" target="_blank">christoph.langer@sap.com</a>> wrote:<o:p></o:p></p>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<p class="MsoNormal">Hi,<br>
<br>
eventually here is the - hopefully final - version of this fix:<br>
<a href="http://cr.openjdk.java.net/~clanger/webrevs/8158023.3/" target="_blank">http://cr.openjdk.java.net/~clanger/webrevs/8158023.3/</a><br>
<br>
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.<br>
<br>
Hoping for a review :)<br>
<br>
Best regards<br>
Christoph<br>
<br>
> -----Original Message-----<br>
> From: Kenji Kazumura [mailto:<a href="mailto:kzr@jp.fujitsu.com">kzr@jp.fujitsu.com</a>]<br>
> Sent: Mittwoch, 8. Juni 2016 02:51<br>
> To: Langer, Christoph <<a href="mailto:christoph.langer@sap.com">christoph.langer@sap.com</a>><br>
> Cc: <a href="mailto:net-dev@openjdk.java.net">net-dev@openjdk.java.net</a>; <a href="mailto:nio-dev@openjdk.java.net">
nio-dev@openjdk.java.net</a>; core-libs-<br>
> <a href="mailto:dev@openjdk.java.net">dev@openjdk.java.net</a><br>
> Subject: Re: RFR 8158023: SocketExceptions contain too little information<br>
> sometimes<br>
><br>
> Christoph,<br>
><br>
> You should not remove conversion codes (platform string to Java String)<br>
> at JNU_ThrowByNameWithLastError,<br>
> and you have to add conversion codes at<br>
> JNU_ThrowByNameWithMessageAndLastError.<br>
><br>
> It seems that you assume strerror returns only ascii characters, but actually<br>
> not.<br>
> It depends on the locale of your environment where java programs runs.<br>
<span lang="EN-US">><br>
><br>
> -Kenji Kazumura<br>
><br>
><br>
> In message<br>
> <</span><a href="mailto:decc19cdab854bbeac7126cb8e236f1e@DEWDFE13DE11.global.corp.sap"><span lang="EN-US">decc19cdab854bbeac7126cb8e236f1e@DEWDFE13DE11.global.corp.sap</span></a><span lang="EN-US">><br>
>    RFR 8158023: SocketExceptions contain too little information sometimes<br>
>    "Langer, Christoph" <</span><a href="mailto:christoph.langer@sap.com"><span lang="EN-US">christoph.langer@sap.com</span></a><span lang="EN-US">> wrote:<br>
><br>
> > Hi all,<br>
> ><br>
> > please review the following change:<br>
> > Webrev: </span><a href="http://cr.openjdk.java.net/~clanger/webrevs/8158023.1/" target="_blank"><span lang="EN-US">http://cr.openjdk.java.net/~clanger/webrevs/8158023.1/</span></a><span lang="EN-US"><br>
> > Bug: </span><a href="https://bugs.openjdk.java.net/browse/JDK-8158023" target="_blank"><span lang="EN-US">https://bugs.openjdk.java.net/browse/JDK-8158023</span></a><span lang="EN-US"><br>
> ><br>
> > During error analysis I stumbled over a place where I encountered a<br>
> SocketException which was thrown along with some strerror information as<br>
> message. </span>I found it hard to find the originating code spot with that information.<br>
> ><br>
> > So I looked at the places where we throw exceptions, namely JNU_Throw...<br>
> and NET_Throw... functions and came up with the following enhancement:<br>
> > - NET_ThrowByNameWithLastError can go completely as it does not provide<br>
> any benefit over JNU_ThrowByNameWithLastError.<br>
> > - JNU_ThrowByNameWithLastError can be cleaned up.<br>
> ><br>
> > - I added JNU_ThrowByNameWithMessageAndLastError to print out a string<br>
> like message + ": " + last error.<br>
> ><br>
> > - I went over all places where NET_ThrowByNameWithLastError is used and<br>
> replaced it appropriately.<br>
> ><br>
> > Do you think this change is desirable/possible?<br>
> ><br>
> > Though it's mainly a net topic, I'm posting it to nio-dev and core-libs-dev as<br>
> well as JNU_Throw... code affects all.<br>
> ><br>
> > Best regards<br>
> > Christoph<br>
> ><o:p></o:p></p>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
</div>
</body>
</html>