Hi Sergey,
Based on our conversation, could you provide your review comments for the fix? Pasting the mail exchange below for reference: The intent of the test is not modified by my changes. By having the second frame register a mouse move callback, it is made more explicit - when the mouse position should be queried, and what is the expected position it should contain. Also, since Frame2 has observed a mouse move, consequently, Frame1 should not report any mouse position. -----Original Message----- From: Sergey Bylokhov Sent: Tuesday, August 1, 2017 2:13 AM To: Krishna Addepalli <HYPERLINK "mailto:krishna.addepa...@oracle.com"krishna.addepa...@oracle.com> Cc: Ambarish Rapte <HYPERLINK "mailto:ambarish.ra...@oracle.com"ambarish.ra...@oracle.com>; Ajit Ghaisas <HYPERLINK "mailto:ajit.ghai...@oracle.com"ajit.ghai...@oracle.com>; Prem Balakrishnan <HYPERLINK "mailto:prem.balakrish...@oracle.com"prem.balakrish...@oracle.com>; Praveen Srivastava <HYPERLINK "mailto:praveen.s.srivast...@oracle.com"praveen.s.srivast...@oracle.com>; Prasanta Sadhukhan (HYPERLINK "mailto:prasanta.sadhuk...@oracle.com"prasanta.sadhuk...@oracle.com) <HYPERLINK "mailto:prasanta.sadhuk...@oracle.com"prasanta.sadhuk...@oracle.com> Subject: Re: awt-dev Digest, Vol 123, Issue 9 You can modify the test as you wish to make it stable, just make sure that initial use case is covered. On 27.07.2017 4:29, Krishna Addepalli wrote: > Hi Sergey, > > I have tested the modified test that you provided on Windows and Linux. > It was working fine on Windows without the sleep, but on Linux, the > behavior is a bit random. If I removed the sleep, it is crashing > always, but occasionally it crashed even for a 2 second sleep time. > > I think, it is better not to rely on sleep, and instead, let frame2 > have a mouse move callback registered, and then perform the required > checks, which guarantees a deterministic behavior, and also holds the > spirit of the intended test. > > Could you review the patch that I submitted and let me know? > > Thanks, > > Krishna > > *From:* Krishna Addepalli > *Sent:* Tuesday, July 25, 2017 8:41 PM > *To:* Sergey Bylokhov <HYPERLINK > "mailto:sergey.bylok...@oracle.com"sergey.bylok...@oracle.com> > *Cc:* Ambarish Rapte <HYPERLINK > "mailto:ambarish.ra...@oracle.com"ambarish.ra...@oracle.com>; Ajit Ghaisas > <HYPERLINK "mailto:ajit.ghai...@oracle.com"ajit.ghai...@oracle.com>; Prem > Balakrishnan > <HYPERLINK > "mailto:prem.balakrish...@oracle.com"prem.balakrish...@oracle.com>; Praveen > Srivastava > <HYPERLINK > "mailto:praveen.s.srivast...@oracle.com"praveen.s.srivast...@oracle.com> > *Subject:* RE: awt-dev Digest, Vol 123, Issue 9 > > Hi Sergey, > > Thanks for your clarifications. That explains the reasons for > Util.waitForIdle() not working in earlier versions. > > So to summarize, the intent of the test is to create a new frame > (“Popup > Frame”) for the MouseMove callback, and then have the new frame report > the expected mouse position, while the underlying frame should report > that mouse position is null, since it is no longer the active frame. > > I have one more question: > > In your code, you are sleeping for 2 seconds, after making the frame2 > visible. Is this necessary? I have seen that, once we set frame2 > visible, the mouse position can be immediately queried without the > need to wait. Is it done to make sure that the test works on older builds? > > Out of curiosity, I wanted to know if you could see the same > failure(“Exception in thread "AWT-EventQueue-2" > java.lang.RuntimeException: Not implemented”)that was reported in the > original bug? > > Thanks, > > Krishna > > *From:* Sergey Bylokhov > *Sent:* Tuesday, July 25, 2017 7:04 AM > *To:* Krishna Addepalli <krishna.addepa...@oracle.com > <mailto:krishna.addepa...@oracle.com>> > *Cc:* Ambarish Rapte <ambarish.ra...@oracle.com > <mailto:ambarish.ra...@oracle.com>>; Ajit Ghaisas > <HYPERLINK > "mailto:ajit.ghai...@oracle.com%20%3cmailto:ajit.ghai...@oracle.com"ajit.ghai...@oracle.com > <mailto:ajit.ghai...@oracle.com>>; Prem > Balakrishnan <prem.balakrish...@oracle.com > <mailto:prem.balakrish...@oracle.com>>; Praveen Srivastava > <praveen.s.srivast...@oracle.com > <mailto:praveen.s.srivast...@oracle.com>> > *Subject:* Re: awt-dev Digest, Vol 123, Issue 9 > > Hi, Krishna. > Here is my observation. > When 8012026 bug was fixed the robot.waitForIdle() does not work > properly, but the test uses Util.waitForIdle(). When the robot was > fixed the implementation of Util.waitForIdle() was reworked. > So if you use the old jdk and a new utils+test you will need to add > some delays. > Another issue is for coordinates. When this bug was fixed we do not > get a mouse move event for the first mouseMove(149,149). But this bug > was fixed on osx long time ago. > > I have attached an updated version of the test which fails on b109 and > pass on 110. For the current version of jdk delays/sleeps are not > necessary since waitForIdle should work. > The steps which are tested: > - Show frame1 > - Move the mouse over frame1 > - Show frame2 under the mouse > - Check the mouse position reported by frame2 > - Check the mouse position reported by frame1 > > ----- HYPERLINK > "mailto:krishna.addepa...@oracle.com"krishna.addepa...@oracle.com > <mailto:krishna.addepa...@oracle.com> > wrote: >> > >> > >> > > Hi Sergey, > > Any comments/concerns on the observations I sent? > > Thanks, > > Krishna > >> > > *From:*Krishna Addepalli >> *Sent:* Wednesday, July 19, 2017 3:40 PM >> *To:* Sergey Bylokhov <sergey.bylok...@oracle.com > <mailto:sergey.bylok...@oracle.com>> >> *Cc:* Praveen Srivastava (HYPERLINK >> "mailto:praveen.s.srivast...@oracle.com"praveen.s.srivast...@oracle.com > <mailto:praveen.s.srivast...@oracle.com>) > <praveen.s.srivast...@oracle.com > <mailto:praveen.s.srivast...@oracle.com>>; Prem Kumar Balakrishnan > (HYPERLINK "mailto:prem.balakrish...@oracle.com"prem.balakrish...@oracle.com > <mailto:prem.balakrish...@oracle.com>) > <HYPERLINK > "mailto:prem.balakrish...@oracle.com%20%3cmailto:prem.balakrish...@oracle.com"prem.balakrish...@oracle.com > <mailto:prem.balakrish...@oracle.com>>; > Ambarish Rajeshwar Rapte (HYPERLINK > "mailto:ambarish.ra...@oracle.com"ambarish.ra...@oracle.com > <mailto:ambarish.ra...@oracle.com>) <ambarish.ra...@oracle.com > <mailto:ambarish.ra...@oracle.com>>; Ajit Haribhau Ghaisas > (HYPERLINK "mailto:ajit.ghai...@oracle.com"ajit.ghai...@oracle.com > <mailto:ajit.ghai...@oracle.com>) > <HYPERLINK > "mailto:ajit.ghai...@oracle.com%20%3cmailto:ajit.ghai...@oracle.com"ajit.ghai...@oracle.com > <mailto:ajit.ghai...@oracle.com>> >> *Subject:* RE: awt-dev Digest, Vol 123, Issue 9 > > Hi Sergey, > > I have tried to reproduce the failure of the test in Mac, by > installing the jdk_1.8.0_b84 > (http://jre.us.oracle.com/java/re/jdk/8/promoted/all/b84/bundles/macos > x-x86_64 > ) that was mentioned in the parent bug (8012026). > > Below are my observations: > > *OS* > > > > *Test Type* > > > > *Result* > > > > *Remarks* > > Mac > > > > Original Test > > > > Failure (Mouse position should be null) > > > > 1.It is not the expected failure though. It is supposed to fail with > "NotImpementedError". > > 2.Also, looks like the "r.waitForIdle()" is not properly working, > which is why the check for mouse position seems to be going through. > > Mac > > > > Modified Test > > (Added a delay between the two mouse move events) > > > > Failure (Wrong position reported. Should be [30,30] but was [29,29] > > > > 1.This is because, the logic of the test seems wrong. > > 2.Since a delay was added between mouse events, this is allowing the > events to be processed in sequential order. > > Mac > > > > Proposed Fix > > > > Pass > > > > Mac > > > > Applet attached with Bug 8012026 > > > > Pass > > > > There is no failure ("NotImplementedError") observed in this case as well. > > Windows/Linux > > > > Original Test > > > > Failure (Wrong position reported. Should be [30,30] but was [29,29] > > > > This is because, the logic of the test seems wrong. > > Windows/Linus > > > > Proposed Fix > > > > Pass > > > > Based on the above, I have some comments about the test: > > 1.The test in current form, does not logically make sense, since > either the mouse position check should be [29,29], or frame2 should > register a mouse callback, in which case the check makes sense. > > 2.The original failure mentioned in the bug is not reproducible. > > 3.Since the original failure is reported with applet, should the test > also have to be based on applet? > > 4.Since the original bug is reported for mac, is the test intended to > run on Linux/Windows? > > 5.Robot.waitForIdle() does not seem to work properly on Mac. > > Could you suggest the course of action from here? > > Thanks, > > Krishna > > -----Original Message----- > > From: HYPERLINK > "mailto:awt-dev-requ...@openjdk.java.net"awt-dev-requ...@openjdk.java.net > <mailto:awt-dev-requ...@openjdk.java.net> > [mailto:awt-dev-requ...@openjdk.java.net] > > Sent: Tuesday, July 18, 2017 5:30 PM > > To: HYPERLINK "mailto:awt-dev@openjdk.java.net"awt-dev@openjdk.java.net > <mailto:awt-dev@openjdk.java.net> > > Subject: awt-dev Digest, Vol 123, Issue 9 > > Send awt-dev mailing list submissions to > > HYPERLINK "mailto:awt-dev@openjdk.java.net"awt-dev@openjdk.java.net > <mailto:awt-dev@openjdk.java.net> > > To subscribe or unsubscribe via the World Wide Web, visit > > http://mail.openjdk.java.net/mailman/listinfo/awt-dev > > or, via email, send a message with subject or body 'help' to > > HYPERLINK > "mailto:awt-dev-requ...@openjdk.java.net"awt-dev-requ...@openjdk.java.net > <mailto:awt-dev-requ...@openjdk.java.net> > > You can reach the person managing the list at > > HYPERLINK > "mailto:awt-dev-ow...@openjdk.java.net"awt-dev-ow...@openjdk.java.net > <mailto:awt-dev-ow...@openjdk.java.net> > > When replying, please edit your Subject line so it is more specific > than > "Re: Contents of awt-dev digest..." > > Today's Topics: > > 1. Re: [10][JDK-8027154] [TESTBUG] Test > > > java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java > > fails (Sergey Bylokhov) > > ---------------------------------------------------------------------- > Thanks, Krishna From: Sergey Bylokhov Sent: Tuesday, July 18, 2017 6:11 AM To: Krishna Addepalli <krishna.addepa...@oracle.com> Cc: awt-dev@openjdk.java.net; Ajit Ghaisas <ajit.ghai...@oracle.com>; Praveen Srivastava <praveen.s.srivast...@oracle.com> Subject: Re: [10][JDK-8027154] [TESTBUG] Test java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails Hi, Krishna. Can you please confirm that the initial bug JDK-8012026 can be reproduced by the updated test? The updated test should fail before JDK-8012026 was fixed, and works after. ----- HYPERLINK "mailto:krishna.addepa...@oracle.com"krishna.addepa...@oracle.com wrote: > Hi All, Please review the fix for test bug: Bug : JDK-8027154 HYPERLINK "https://bugs.openjdk.java.net/browse/JDK-8027154"<https://bugs.openjdk.java.net/browse/JDK-8027154> JDK 10 Webrev: HYPERLINK "http://cr.openjdk.java.net/%7Epkbalakr/Krishna/8027154/webrev00/"http://cr.openjdk.java.net/~pkbalakr/Krishna/8027154/webrev00/ Summary: The test intends to check the mouse move on Frame2, which is drawn in the MouseMove callback for Frame1. > However, the code wrongly asserts for the expected mouse position on Frame2, which was just created. > Also, Frame2 has no callback registered for MouseMove, which is leading to different behaviors on different platforms. On Windows and Linux, the assertion is thrown for Mouse Position whereas on Mac, a NullPointerException is thrown. > After moving the code into the callback for Frame2, the test passes on all the platforms. > Thanks, Krishna > >