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;
+ }
}
/**