From 8b7a998bbf6d22c8db18d2e5ff8aa5490a24bb6e Mon Sep 17 00:00:00 2001 From: David Gillingham Date: Thu, 20 Jun 2013 16:18:43 -0500 Subject: [PATCH] Issue #2111: Prevent possible NullPointerException in GridCanvas's mouse handler when attempting to display context menu. Change-Id: I87fd5e790364028986e1a7872f4adf747b78bfee Former-commit-id: 6b696c9e6ac5fe18ee26e0f651f1cd8be84f44f3 [formerly be9d6ed2d6c2a87afb5365abba0c9f09983550ec] Former-commit-id: 4f6c293a7e65f4b7e6417198b87d0e28d8d19024 --- .../viz/gfe/gridmanager/GridCanvas.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/gridmanager/GridCanvas.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/gridmanager/GridCanvas.java index fd7b86ddb1..830f1adeb9 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/gridmanager/GridCanvas.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/gridmanager/GridCanvas.java @@ -113,6 +113,8 @@ import com.raytheon.viz.ui.cmenu.AbstractRightClickAction; * 01/22/2013 #1518 randerso Removed use of Map with Parms as keys * 03/28/2013 #1838 randerso Fixed selected time range when Select Grids When * Stepping is enabled. Cleaned up deprecated warnings. + * 06/20/2013 #2111 dgilling Prevent NullPointerException in mouse handler's + * displayContextMenu() method. * * * @@ -475,6 +477,11 @@ public class GridCanvas extends Canvas implements IMessageClient { @Override public void displayContextMenu(MouseEvent e) throws GFEServerException { + if (menuMgr != null) { + menuMgr.dispose(); + menuMgr = null; + } + super.displayContextMenu(e); GridBar gridBar = findClickedBar(e.x, e.y); @@ -495,9 +502,6 @@ public class GridCanvas extends Canvas implements IMessageClient { .getTimeConstraints().constraintTime(clickTime) .isValid(); - if (menuMgr != null) { - menuMgr.dispose(); - } menuMgr = new MenuManager("#PopupMenu"); if (!isEmpty) { @@ -608,11 +612,11 @@ public class GridCanvas extends Canvas implements IMessageClient { menuMgr.add(action); } } - } - Menu menu = menuMgr.createContextMenu(GridCanvas.this); - menu.setVisible(true); - setMenu(menu); + Menu menu = menuMgr.createContextMenu(GridCanvas.this); + menu.setVisible(true); + setMenu(menu); + } } };