<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Sergey and Semyon,<div class=""><br class=""></div><div class="">Thank you both for the review comments.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Manajit</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 13-Apr-2016, at 2:01 pm, Semyon Sadetsky <<a href="mailto:semyon.sadetsky@oracle.com" class="">semyon.sadetsky@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta content="text/html; charset=windows-1252" http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class="">
Looks good. <br class="">
<br class="">
--Semyon<br class="">
<br class="">
<div class="moz-cite-prefix">On 4/1/2016 1:58 PM, Manajit Halder
wrote:<br class="">
</div>
<blockquote cite="mid:D9BEDC50-2D1D-45B6-B3BF-7990823D462E@oracle.com" type="cite" class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
<font class="" face="Menlo">Hi Sergey,</font>
<div class=""><font class="" face="Menlo"><br class="">
</font></div>
<div class=""><font class="" face="Menlo">Thank you for your
review comments. The following scenarios were taken care while
modifying the code along with your comments.</font></div>
<div class="">
<div class=""><font class="" face="Menlo"><br class="">
</font></div>
<div class=""><font class="" face="Menlo">Case 1) popup and
newPopup refers to same object. In cases where the same
popup menu is used thorughout the execution of the program
or both of them are null.</font></div>
<div class=""><font class="" face="Menlo"> a) first popup
menu is null </font></div>
<div class=""><font class="" face="Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>return
0 as address.</font></div>
<div class=""><font class="" face="Menlo"> b) first popup
menu is not null</font></div>
<div class=""><font class="" face="Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>poupup
is already set in the constructor.</font></div>
<div class=""><font class="" face="Menlo"> </font></div>
<div class=""><font class="" face="Menlo">Case 2) popup and
newPopup refers to different objects.</font></div>
<div class=""><font class="" face="Menlo"> a) newPopup is not
null.</font></div>
<div class=""><font class="" face="Menlo"> i) popup is
not null </font></div>
<div class=""><font class="" face="Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>call
removeNotify() on popup and set it to newPopup</font></div>
<div class=""><font class="" face="Menlo"> ii) popup is
null </font></div>
<div class=""><font class="" face="Menlo"><span class="Apple-tab-span" style="white-space:pre"> </span>set
popup to newPoup</font></div>
<div class=""><font class="" face="Menlo"> b) newPopup is
null then return 0 address (In this case the first popup
menu is not checked for null because we are interested in
the newPopup).</font></div>
</div>
<div class=""><font class="" face="Menlo"><br class="">
</font></div>
<div class="">
<div class=""><font class="" face="Menlo">Please review the
modified code @ </font></div>
<div class=""><font class="" color="#954f72" face="Menlo"><a moz-do-not-send="true" href="http://cr.openjdk.java.net/%7Eaghaisas/manajit/8147841/webrev.01/" class=""></a><a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~aghaisas/manajit/8147841/webrev.01/">http://cr.openjdk.java.net/~aghaisas/manajit/8147841/webrev.01/</a></font></div>
</div>
<div class=""><font class="" face="Menlo"><br class="">
</font></div>
<div class=""><font class="" face="Menlo">Thanks,</font></div>
<div class=""><font class="" face="Menlo">Manajit</font></div>
<div class=""><br class="">
</div>
<div class="">
<div class="">
<blockquote type="cite" class="">
<div class="">On 30-Mar-2016, at 11:53 pm, Sergey Bylokhov
<<a moz-do-not-send="true" href="mailto:Sergey.Bylokhov@oracle.com" class="">Sergey.Bylokhov@oracle.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">Hi, Manajit.<br class="">
Please double check two cases.<br class="">
- The initial popup menu is set to null in CTrayIcon(); it
seems after the fix it will never be changed to non-null
value.<br class="">
- Who and when will call removeNotify() on the old popup
menu after you replace it by the new popup. it will be
leaked?<br class="">
<br class="">
On 30.03.16 15:45, Manajit Halder wrote:<br class="">
<blockquote type="cite" class="">Hi All,<br class="">
<br class="">
Kindly review the fix for JDK9.<br class="">
<br class="">
*Bug*:<br class="">
_<a moz-do-not-send="true" href="https://bugs.openjdk.java.net/browse/JDK-8147841_" class="">https://bugs.openjdk.java.net/browse/JDK-8147841_</a><br class="">
_<br class="">
_<br class="">
*Webrev*:<br class="">
<a moz-do-not-send="true" href="http://cr.openjdk.java.net/%7Earapte/manajit/8147841/webrev.00/" class="">http://cr.openjdk.java.net/~arapte/manajit/8147841/webrev.00/</a><br class="">
<br class="">
*Issue: *<br class="">
[macosx] Updating TrayIcons popup menu does not work on
Mac OS X.<br class="">
<br class="">
*Cause: *<br class="">
Wrong address of Popup menu was referred by native code
(Mac OS). The<br class="">
native side was always referring to the popup menu
created initially and<br class="">
the popup menu created later was not referred by the
native code. Popup<br class="">
menu was getting updated internally (in java code), the
new popup menu<br class="">
was not getting accessed/used by the native code (mac os
x).<br class="">
<br class="">
Explanation with code points as below:<br class="">
<br class="">
File CTrayIcon.m:<br class="">
On mouseDown event java method getPopupMenuModel was
called<br class="">
using JNFCallLongMethod. getPopupMenuModel on the java
side was always<br class="">
returning the address of the popup menu created
initially and because of<br class="">
this updated popup menus was not getting shown on
clicking the Tray icon.<br class="">
<br class="">
*Fix: *<br class="">
In method getPopupMenuModel the address of the new popup
menu is updated<br class="">
in case there is a new popup menu. If the new popup
points to null then<br class="">
0 is returned as address. And in cases the new popup and
the initial<br class="">
popup menu are same then the initial popup menu's
address is returned.<br class="">
<br class="">
<br class="">
Regards,<br class="">
Manajit<br class="">
</blockquote>
<br class="">
<br class="">
-- <br class="">
Best regards, Sergey.<br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
<br class="">
</div>
</div></blockquote></div><br class=""></div></body></html>