Looks fine. On 01.08.16 10:24, Ambarish Rapte wrote:
Hi,This is an older issue fix which was paused. Here is an updated webrev: http://cr.openjdk.java.net/~arapte/8039081/webrev.02/ Issue & Fix: There were platforms wise different issues: Linux: Issue: Reference to TrayIcon was not released from member fields of XTrayIconPeer like, TrayIconCanvas, XTrayIconEmbeddedFrame. PopupMenu.removeNotify() was not called for PopupMenu added to TrayIcon. This prevented from TrayIcon & PopupMenu to TrayIcon from getting garbage collected. However the behavior was not uniform: Sometimes the reference gets collected but sometimes it does not even after 100+ OOMs. Fix: Released reference to TrayIcon by setting these variables to NULL. With this change, reference gets collected mostly with the first OOM. Removed listeners to avoid any events while the TrayIcon/Peer is getting disposed: Had observed a NPE at TrayIconEventProxy::MouseExited(), hence removeListeners() is required. Mac: Issue: The test failed with OOM exception, due to incorrect way of causing OOM in the test. (Line No.85 in existing Test) Fix: Correction in Test: Corrected the OOM causing code in test. Windows: Issue: The test fails to run on windows, as the popup should have a container parent. Fix: Correction in Test: The test is not required for windows. TrayIcon & PopupMenu get collected easily on windows, verified that by changes in test. Hence discarding execution of test on windows. Verification: No other test of TrayIcon fails due to this change on Win, Mac, Linux. Regards, Ambarish -----Original Message----- From: Sergey Bylokhov Sent: Monday, December 07, 2015 6:03 PM To: Ambarish Rapte; Semyon Sadetsky; Prasanta Sadhukhan; [email protected] Subject: Re: <AWT Dev> Review Request for 8039081: [TEST_BUG] Test java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java fails Hi, Ambarish. It seems this version of the test completes successfully, before related fix was integrated(JDK-8007220) but it should fail(I tested jdk8u05b13), please double check. On 03.12.15 11:45, Ambarish Rapte wrote:Hi Semyon, I had verified the patch fix with Windows 7 64-bit, Ubuntu 14.04 32 & 64 bit & Mac platform. Where the test executes & passes. Are you using Ubuntu 15.10 ? I am setting up Ubuntu 15.10 64 bit to reproduce the same failure. However, solution to this failure would require a small wait for gc to finish. Regards, Ambarish *From:*Semyon Sadetsky *Sent:* Wednesday, December 02, 2015 1:54 PM *To:* Ambarish Rapte; Prasanta Sadhukhan; [email protected] *Subject:* Re: Review Request for 8039081: [TEST_BUG] Test java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java fails Hi Ambarish, Now it fails on Linux: ACTION: main -- Failed. Execution failed: `main' threw exception: java.lang.OutOfMemoryError: Java heap space REASON: User specified action: run main/othervm -Xmx50m PopupMenuLeakTest TIME: 1.445 seconds messages: command: main -Xmx50m PopupMenuLeakTest reason: User specified action: run main/othervm -Xmx50m PopupMenuLeakTest elapsed time (seconds): 1.445 STDOUT: STDERR: java.lang.OutOfMemoryError: Java heap space at PopupMenuLeakTest.assertCollected(PopupMenuLeakTest.java:85) at PopupMenuLeakTest.main(PopupMenuLeakTest.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:520) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:92) at java.lang.Thread.run(Thread.java:747) JavaTest Message: Test threw exception: java.lang.OutOfMemoryError: Java heap space JavaTest Message: shutting down test STATUS:Failed.`main' threw exception: java.lang.OutOfMemoryError: Java heap space --Semyon On 11/30/2015 6:44 PM, Ambarish Rapte wrote: Hi Semyon, I have updated the fix patch with below changes, 1.Code formatting. 2.Reduced the number of OOMs. 3.Removed un-required delays. Please review the update patch, which causes OOM early than previous change. http://cr.openjdk.java.net/~arapte/8039081/webrev.01/ <http://cr.openjdk.java.net/%7Earapte/8039081/webrev.01/> Thanks, Ambarish *From:*Semyon Sadetsky *Sent:* Monday, November 30, 2015 1:54 PM *To:* Ambarish Rapte; Prasanta Sadhukhan; [email protected] <mailto:[email protected]> *Subject:* Re: Review Request for 8039081: [TEST_BUG] Test java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java fails Hi Ambarish, On my Windows 7 64bit the test fails because of timeout. --Semyon On 11/20/2015 1:30 PM, Ambarish Rapte wrote: Hi All, Please review the fix for JDK9, Bug: https://bugs.openjdk.java.net/browse/JDK-8039081 Webrev: http://cr.openjdk.java.net/~arapte/8039081/webrev.00/ *Issue*: èThe test fails on windows with below exception, Caused by: java.lang.IllegalArgumentException: illegal popup menu container class at sun.awt.windows.WPopupMenuPeer.<init>(WPopupMenuPeer.java:65) at sun.awt.windows.WToolkit.createPopupMenu(WToolkit.java:461) at java.awt.PopupMenu.addNotify(PopupMenu.java:124) at PopupMenuLeakTest.addNotifyPopup(PopupMenuLeakTest.java:63) èWith below exception on mac, ubuntu, java.lang.OutOfMemoryError: Java heap space at PopupMenuLeakTest.assertCollected(PopupMenuLeakTest.java:85) at PopupMenuLeakTest.main(PopupMenuLeakTest.java:57) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j ava:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess orImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:520) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper. java:92) at java.lang.Thread.run(Thread.java:747) *Cause*: This is a test code issue. On Windows Popup menu should have a valid parent container. Is there is no parent container , then above exception is thrown. And also, after throwing OOM exception, program tried to allocate new memory in catch. Which results in failure again. *Fix*: Updated the test code to add popup menu as a child of Frame. Verifiew on : Ubuntu, Windows & Mac Many Thanks, Ambarish-- Best regards, Sergey.
-- Best regards, Sergey.
