<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi Ambarish,<br>
<br>
Why not simply initialize yieldMethodID separately? For example in
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
Java_sun_awt_X11_XToolkit_initIDs.<br>
<br>
--Semyon<br>
<br>
<div class="moz-cite-prefix">On 06.07.2016 14:23, Ambarish Rapte
wrote:<br>
</div>
<blockquote cite="mid:bf801a82-3a0b-4634-a9b1-b501cd43caf6@default"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="Generator" content="Microsoft Word 12 (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:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-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;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:107243205;
mso-list-type:hybrid;
mso-list-template-ids:-1206473858 323883818 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l1
{mso-list-id:904531106;
mso-list-type:hybrid;
mso-list-template-ids:-1584505382 2104147150 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l2
{mso-list-id:1567691066;
mso-list-type:hybrid;
mso-list-template-ids:-723592614 -1889384092 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
@list l3
{mso-list-id:1749964866;
mso-list-type:hybrid;
mso-list-template-ids:2127197066 1544571926 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l3:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:.75in;
text-indent:-.25in;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></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]-->
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"> Please review the fix for
JDK9,<o:p></o:p></p>
<p class="MsoNormal"> Bug: <a
moz-do-not-send="true"
href="https://bugs.openjdk.java.net/browse/JDK-8146230"><a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8146230">https://bugs.openjdk.java.net/browse/JDK-8146230</a></a><o:p></o:p></p>
<p class="MsoNormal"> Webrev: <a
moz-do-not-send="true"
href="http://cr.openjdk.java.net/%7Earapte/8146230/webrev.00/"><a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~arapte/8146230/webrev.00/">http://cr.openjdk.java.net/~arapte/8146230/webrev.00/</a></a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Issue:<o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:.75in;text-indent:-.25in;mso-list:l1 level1
lfo1"><!--[if !supportLists]--><span style="mso-list:Ignore">1.<span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Null
pointer exception in JNI<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Cause:<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in">The code
block was not multi thread safe.<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in">Issue
occurs in multi threaded , multi processor environment.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Fix:<o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:.75in;text-indent:-.25in;mso-list:l2 level1
lfo3"><!--[if !supportLists]--><span style="mso-list:Ignore">1.<span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Changed
the variable used for double checking, to use <i>yieldMethodID
.</i><o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:.75in;text-indent:-.25in;mso-list:l2 level1
lfo3"><!--[if !supportLists]--><span style="mso-list:Ignore">2.<span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Changed
<i>yieldMethodID to volatile.</i><o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:.75in;text-indent:-.25in;mso-list:l2 level1
lfo3"><!--[if !supportLists]--><span style="mso-list:Ignore">3.<span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Added
AWT_LOCK() over initialize block of code.<o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:.75in;text-indent:-.25in;mso-list:l2 level1
lfo3"><!--[if !supportLists]--><span style="mso-list:Ignore">4.<span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Removed
unrequired err variable.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-left:.5in">A drawback of
Double Check Locking ( DCL ) is, if the resource assignment is
not an atomic operation, The DCL may fail.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">But here in the
code of concern, is an atomic operation. Hence DCL should work
fine.<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in">Please check below
reference link for more detailed discussion of DCL with C++.<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:.75in"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Verification:<o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:.75in;text-indent:-.25in;mso-list:l0 level1
lfo4"><!--[if !supportLists]--><span style="mso-list:Ignore">1.<span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->Tested
Event tests which pass without any regression of this change.<o:p></o:p></p>
<p class="MsoListParagraph"
style="margin-left:.75in;text-indent:-.25in;mso-list:l0 level1
lfo4"><!--[if !supportLists]--><span style="mso-list:Ignore">2.<span
style="font:7.0pt "Times New Roman""> </span></span><!--[endif]-->As
this change only corrects existing logic, there should be no
side effects.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Reference:<o:p></o:p></p>
<p class="MsoNormal"> C++ and the Perils of
Double-Checked Locking: <a moz-do-not-send="true"
href="http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf">http://www.aristeia.com/Papers/DDJ_Jul_Aug_2004_revised.pdf</a><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Ambarish<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</blockquote>
<br>
</body>
</html>