--- old/src/java.desktop/macosx/classes/sun/lwawt/macosx/CTrayIcon.java 2016-04-01 14:09:15.000000000 +0530 +++ new/src/java.desktop/macosx/classes/sun/lwawt/macosx/CTrayIcon.java 2016-04-01 14:09:15.000000000 +0530 @@ -98,15 +98,26 @@ private native long nativeCreate(); //invocation from the AWTTrayIcon.m - public long getPopupMenuModel(){ - if(popup == null) { - PopupMenu popupMenu = target.getPopupMenu(); - if (popupMenu != null) { - popup = popupMenu; + public long getPopupMenuModel() { + PopupMenu newPopup = target.getPopupMenu(); + + if (popup == newPopup) { + if (popup == null) { + return 0L; + } + } else { + if (newPopup != null) { + if (popup != null) { + popup.removeNotify(); + popup = newPopup; + } else { + popup = newPopup; + } } else { return 0L; } } + return checkAndCreatePopupPeer().getModel(); }