Index: javax/swing/JPopupMenu.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/JPopupMenu.java,v retrieving revision 1.29 diff -u -r1.29 JPopupMenu.java --- javax/swing/JPopupMenu.java 19 Oct 2005 15:45:04 -0000 1.29 +++ javax/swing/JPopupMenu.java 21 Oct 2005 15:11:30 -0000 @@ -552,7 +552,12 @@ Dimension screenSize = getToolkit().getScreenSize(); boolean fit = true; - Dimension size = this.getSize(); + Dimension size = getSize(); + if (size.width == 0 && size.height == 0) + { + size = getPreferredSize(); + setSize(size); + } if ((size.width > (rootContainer.getWidth() - popupLocation.x)) || (size.height > (rootContainer.getHeight() - popupLocation.y))) fit = false; Index: javax/swing/plaf/basic/BasicMenuUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicMenuUI.java,v retrieving revision 1.18 diff -u -r1.18 BasicMenuUI.java --- javax/swing/plaf/basic/BasicMenuUI.java 18 Oct 2005 22:10:32 -0000 1.18 +++ javax/swing/plaf/basic/BasicMenuUI.java 21 Oct 2005 15:11:30 -0000 @@ -422,10 +422,13 @@ public void menuDeselected(MenuEvent e) { JMenu menu = (JMenu) menuItem; - if (menu.isTopLevelMenu()) - ((JMenuBar) menu.getParent()).getSelectionModel().clearSelection(); - else - ((JPopupMenu) menu.getParent()).getSelectionModel().clearSelection(); + if (menu.getParent() != null) + { + if (menu.isTopLevelMenu()) + ((JMenuBar) menu.getParent()).getSelectionModel().clearSelection(); + else + ((JPopupMenu) menu.getParent()).getSelectionModel().clearSelection(); + } } /** Index: javax/swing/plaf/basic/BasicSeparatorUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicSeparatorUI.java,v retrieving revision 1.8 diff -u -r1.8 BasicSeparatorUI.java --- javax/swing/plaf/basic/BasicSeparatorUI.java 12 Oct 2005 12:10:00 -0000 1.8 +++ javax/swing/plaf/basic/BasicSeparatorUI.java 21 Oct 2005 15:11:30 -0000 @@ -55,27 +55,6 @@ */ public class BasicSeparatorUI extends SeparatorUI { - /** - * The standard minimum size. - */ - static final Dimension minSize = new Dimension(0, 0); - - /** - * The standard horizontal preferred size. - */ - static final Dimension horizontalPrefSize = new Dimension(0, 2); - - /** - * The standard vertical preferred size. - */ - static final Dimension verticalPrefSize = new Dimension(2, 0); - - /** - * The standard maxnimum size. - */ - static final Dimension maxSize = new Dimension(Short.MAX_VALUE, - Short.MAX_VALUE); - /** The shadow color. */ protected Color shadow; @@ -234,12 +213,12 @@ */ public Dimension getPreferredSize(JComponent c) { - Dimension pref = verticalPrefSize; + Dimension pref = new Dimension(2, 0); if (c instanceof JSeparator) { JSeparator s = (JSeparator) c; if (s.getOrientation() == JSeparator.HORIZONTAL) - pref = horizontalPrefSize; + pref = new Dimension(0, 2); } return pref; } @@ -254,7 +233,7 @@ */ public Dimension getMinimumSize(JComponent c) { - return minSize; + return new Dimension(0, 0); } /** @@ -267,6 +246,7 @@ */ public Dimension getMaximumSize(JComponent c) { - return maxSize; + return new Dimension(Short.MAX_VALUE, + Short.MAX_VALUE); } }