Hey, For some reason when I did a CVS diff to create the patch for these changes, the change I made to BasicPopupMenuUI.java wasn't included. I only realized this afterwards. Again, this change was due to the mauve test I created (getPopUPMenu.java) that I have already committed. Below is the changelog entry for this change. When someone approves this patch, I'll combine the two changelog entries when I commit it. Thanks.
Here's the changelog entry: 2006-06-21 Tania Bento <[EMAIL PROTECTED]> *javax/swing/plaf/basic/BasicPopupMenu.UI.java (popupMenuWillBecomeVisible): Component Listener should only be added to the root container if the root container is not null. This avoids a null pointer exception. Cheers, Tania On Tue, 2006-06-20 at 16:53 -0400, Tania Bento wrote: > Sorry, forgot to mention that these specific changes are due to the > getPopUpMenu.java mauve test I just committed. > > Tania > > On Tue, 2006-06-20 at 16:52 -0400, Tania Bento wrote: > > Hey, > > > > I have written a test for all of JMenu's constructors and found many > > constructor regressions. This patches fixes all of them. Could someone > > please approve this patch so that I may commit it. Thanks. > > > > Here's the Changelog entry: > > > > 2006-06-20 Tania Bento <[EMAIL PROTECTED]> > > > > * javax/swing/JMenu.java > > Changed instantiation of popupMenu to null. > > (JMenu): Instantiated popupMenu to new JPopupMenu. > > (JMenu): Instantiated popupMenu to new JPopupMenu. > > (add): Changed popupMenu to getPopupMenu(). > > (add): Changed popupMenu to getPopupMenu(). > > (add): Changed popupMenu to getPopupMenu(). > > (add): Changed popupMenu to getPopupMenu(). > > (remove): Changed popupMenu to getPopupMenu(). > > (remove): Changed popupMenu to getPopupMenu(). > > (insert): Changed popupMenu to getPopupMenu(). > > (setSelectedHelper): Changed popupMenu to getPopupMenu(). > > (isPopupMenuVisible): Changed popupMenu to getPopupMenu(). > > (setPopupMenuVisible): Changed popupMenu to getPopupMenu(). > > (getMenuComponentCount): Changed popupMenu to getPopupMenu(). > > (getMenuComponents): Changed popupMenu to getPopupMenu(). > > (getPopupMenu): Check first if popupMenu is null and if so, > > instantiate it to a new JPopupMenu and set the invoker. > > > >
Index: javax/swing/plaf/basic/BasicPopupMenuUI.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicPopupMenuUI.java,v retrieving revision 1.18 diff -u -r1.18 BasicPopupMenuUI.java --- javax/swing/plaf/basic/BasicPopupMenuUI.java 17 Apr 2006 07:41:05 -0000 1.18 +++ javax/swing/plaf/basic/BasicPopupMenuUI.java 21 Jun 2006 13:30:31 -0000 @@ -278,9 +278,10 @@ // Adds topWindowListener to top-level window to listener to // ComponentEvents fired by it. We need to cancel this popup menu // if topWindow to which this popup belongs was resized or moved. - Component invoker = popupMenu.getInvoker(); + Component invoker = popupMenu.getInvoker(); Component rootContainer = SwingUtilities.getRoot(invoker); - rootContainer.addComponentListener(topWindowListener); + if (rootContainer != null) + rootContainer.addComponentListener(topWindowListener); // if this popup menu is a free floating popup menu, // then by default its first element should be always selected when