8160441: [PIT][TEST_BUG][macosx] javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java
authoryan
Wed, 07 Dec 2016 17:54:55 +0300
changeset 42738 67c248b945d5
parent 42737 b37da02bd6c1
child 42739 36f46e978c31
8160441: [PIT][TEST_BUG][macosx] javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java Reviewed-by: ssadetsky, yan Contributed-by: Alexander Popov <ox38popugaev@yandex.ru>
jdk/test/javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java
--- a/jdk/test/javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java	Wed Dec 07 11:37:04 2016 +0530
+++ b/jdk/test/javax/swing/JComboBox/8041909/ActionListenerExceptionTest.java	Wed Dec 07 17:54:55 2016 +0300
@@ -26,7 +26,7 @@
   * @summary Test to check JComboBox does not lose its ability to invoke
   * registerd ActionListener in case of exception in ActionListener
   * @run main ActionListenerExceptionTest
-  */
+ */
 
 import java.awt.AWTEvent;
 import java.awt.AWTException;
@@ -44,6 +44,7 @@
 import javax.swing.JComponent;
 import javax.swing.JFrame;
 import javax.swing.JPopupMenu;
+import javax.swing.JScrollPane;
 import javax.swing.SwingUtilities;
 
 public class ActionListenerExceptionTest {
@@ -133,7 +134,11 @@
         SwingUtilities.invokeAndWait(new Runnable() {
             public void run() {
                 Object comp = combo.getUI().getAccessibleChild(combo, 0);
-                JComponent scrollPane = (JComponent) ((JPopupMenu) comp).getComponent(0);
+                int i = 0;
+                JComponent scrollPane;
+                do {
+                    scrollPane = (JComponent) ((JPopupMenu) comp).getComponent(i++);
+                } while (!(scrollPane instanceof JScrollPane));
 
                 menuItemHeight = scrollPane.getSize().height / TOTAL_MENU_ITEMS;
                 yPos = scrollPane.getLocationOnScreen().y + menuItemHeight / 2;