8060202: [macosx] Test closed/java/awt/Choice/GetSizeTest/GetSizeTest fails only in MacOSX(10.10)

Reviewed-by: prr
diff --git a/test/jdk/java/awt/Choice/GetSizeTest/GetSizeTest.java b/test/jdk/java/awt/Choice/GetSizeTest/GetSizeTest.java
index 54bb22c..b44106a 100644
--- a/test/jdk/java/awt/Choice/GetSizeTest/GetSizeTest.java
+++ b/test/jdk/java/awt/Choice/GetSizeTest/GetSizeTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2020, 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
@@ -29,8 +29,14 @@
   run main GetSizeTest.html
 */
 
-import java.awt.*;
-import java.awt.event.*;
+import java.awt.Choice;
+import java.awt.Frame;
+import java.awt.Panel;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
 
 public class GetSizeTest {
 
@@ -40,16 +46,15 @@
                          "what choices do I have?",
                          "Will I pick the same thing in the future?",
                 };
-    static boolean passed = false;
-    static Robot robot = null;
+    static volatile boolean passed = false;
 
-    public static void main(String args[])
-    {
+    public static void main(String args[]) throws Exception {
+        Frame f = null;
         try {
-            robot = new Robot();
-            robot.setAutoDelay(50);
+            Robot robot = new Robot();
+            robot.setAutoDelay(150);
 
-            Frame f = new Frame("choice test");
+            f = new Frame("choice test");
 
             Panel p = new Panel();
             p.setLayout(null);
@@ -70,14 +75,7 @@
             f.add(p);
 
             f.setSize(300, 300);
-
-            f.addWindowListener(new WindowAdapter() {
-                public void windowClosing(WindowEvent we) {
-                    System.err.println("Test passed");
-                    passed = true;
-                }
-            });
-
+            f.setLocationRelativeTo(null);
             f.setVisible(true);
 
             c.setSize(200, 200);
@@ -88,14 +86,13 @@
             Point pt = c.getLocationOnScreen();
             robot.mouseMove(pt.x + c.getWidth() - 10, pt.y + c.getHeight() / 2);
             robot.waitForIdle();
-            robot.mousePress(InputEvent.BUTTON2_MASK);
-            robot.mouseRelease(InputEvent.BUTTON2_MASK);
+            robot.mousePress(InputEvent.BUTTON2_DOWN_MASK);
+            robot.mouseRelease(InputEvent.BUTTON2_DOWN_MASK);
             robot.waitForIdle();
-        } catch (Throwable e) {
-            if (robot == null){
-                throw new RuntimeException( "Test failed.Unable to initialize Robot "+e);
+        } finally {
+            if (f != null) {
+                f.dispose();
             }
-            throw new RuntimeException( "Test failed due to thrown exception "+e);
         }
         if (!passed) {
             throw new RuntimeException( "Timeout. Choice component size is not actual size." );