Hi,

While writing some Mauve tests, I came across a small bug in JMenuBar's
getSubElements() method: instead of returning an array of only menu's,
we currently insert null values for non-menu components as well.

A patch is attached.

Regards,
Francis

2006-06-07  Francis Kung  <[EMAIL PROTECTED]>

        * javax/swing/JMenuBar.java:
        (getSubElements): Do not return null values.

Index: javax/swing/JMenuBar.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/JMenuBar.java,v
retrieving revision 1.24
diff -u -r1.24 JMenuBar.java
--- JMenuBar.java	6 Jun 2006 12:54:37 -0000	1.24
+++ JMenuBar.java	7 Jun 2006 18:31:00 -0000
@@ -370,10 +370,30 @@
   {
     MenuElement[] subElements = new MenuElement[getComponentCount()];
 
+    int j = 0;
+    boolean doResize = false;
+    MenuElement menu;
     for (int i = 0; i < getComponentCount(); i++)
-      subElements[i] = (MenuElement) getMenu(i);
+      {
+        menu = getMenu(i);
+        if (menu != null)
+          {
+            subElements[j++] = (MenuElement) menu;
+          }
+        else
+          doResize = true;
+      }
 
-    return subElements;
+    if (! doResize)
+      return subElements;
+    else
+      {
+        MenuElement[] subElements2 = new MenuElement[j];
+        for (int i = 0; i < j; i++)
+          subElements2[i] = subElements[i];
+
+        return subElements2;
+      }
   }
 
   /**

Reply via email to