diff --git a/test/jdk/ProblemList.txt b/test/jdk/ProblemList.txt index dd3c46ecc11..7434a3938d4 100644 --- a/test/jdk/ProblemList.txt +++ b/test/jdk/ProblemList.txt @@ -736,7 +736,7 @@ javax/swing/JFileChooser/8002077/bug8002077.java 8196094 windows-all,macosx-all javax/swing/JFileChooser/6396844/TwentyThousandTest.java 8058231 generic-all javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java 8193942 generic-all javax/swing/JList/6462008/bug6462008.java 7156347 generic-all -javax/swing/JPopupMenu/6580930/bug6580930.java 8196096 windows-all,macosx-all +javax/swing/JPopupMenu/6580930/bug6580930.java 7124313 macosx-all javax/swing/JPopupMenu/6800513/bug6800513.java 7184956 macosx-all javax/swing/JPopupMenu/6675802/bug6675802.java 8196097 windows-all javax/swing/JTabbedPane/8007563/Test8007563.java 8051591 generic-all diff --git a/test/jdk/javax/swing/JPopupMenu/6580930/bug6580930.java b/test/jdk/javax/swing/JPopupMenu/6580930/bug6580930.java index f79d529fca9..05a78e48702 100644 --- a/test/jdk/javax/swing/JPopupMenu/6580930/bug6580930.java +++ b/test/jdk/javax/swing/JPopupMenu/6580930/bug6580930.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,8 @@ public class bug6580930 { private static JPopupMenu popup; private static Toolkit toolkit; private static volatile boolean skipTest = false; + private static Point loc; + private static int y; private static void createGui() { frame = new JFrame(); @@ -94,12 +96,15 @@ public void run() { if (skipTest) { return; } - Point loc = frame.getLocationOnScreen(); + + SwingUtilities.invokeAndWait(() -> loc = frame.getLocationOnScreen()); + robot.waitForIdle(); robot.mouseMove(loc.x, loc.y); showPopup(); robot.waitForIdle(); - if (isHeavyWeightMenuVisible()) { + if (!System.getProperty("os.name").startsWith("Mac") + && isHeavyWeightMenuVisible()) { throw new RuntimeException("HeavyWeightPopup is unexpectedly visible"); } @@ -107,12 +112,16 @@ public void run() { robot.keyRelease(KeyEvent.VK_ESCAPE); int x = loc.x; - int y = loc.y + (frame.getHeight() - popup.getPreferredSize().height) + 1; + SwingUtilities.invokeAndWait( () -> y = loc.y + (frame.getHeight() - + popup.getPreferredSize().height) + 1); + robot.waitForIdle(); robot.mouseMove(x, y); showPopup(); + SwingUtilities.invokeAndWait(() -> loc = popup.getLocationOnScreen()); + robot.waitForIdle(); - if (!popup.getLocationOnScreen().equals(new Point(x, y))) { + if (!loc.equals(new Point(x, y))) { throw new RuntimeException("Popup is unexpectedly shifted"); }