diff options
author | Robert Gemmell <robbie@apache.org> | 2010-08-27 20:25:49 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2010-08-27 20:25:49 +0000 |
commit | d8014dc0507d5f6dfa759e40cb21b597e6b69aaa (patch) | |
tree | 02e131f4a3990b35e08470335ab00ca73b62e40c /java/management/eclipse-plugin/src | |
parent | b16bd3f6e83152eace352a47e78424db8df4171e (diff) | |
download | qpid-python-d8014dc0507d5f6dfa759e40cb21b597e6b69aaa.tar.gz |
QPID-2828: prevent NPE if attempting to add queues to the navigation tree that have been removed due to MBean unregistration notification since the selection list was created, and indicate in the status bar why the operation apparently has no effect
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@990254 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/management/eclipse-plugin/src')
3 files changed, 39 insertions, 2 deletions
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java index 9763c799d7..65615a6d18 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java @@ -475,7 +475,7 @@ public class MBeanView extends ViewPart } _form.setText(APPLICATION_NAME); - populateStatusBar(""); + clearStatusBar(); } public void mbeanUnregistered(ManagedBean mbean) @@ -556,6 +556,11 @@ public class MBeanView extends ViewPart IActionBars bars = getViewSite().getActionBars(); bars.getStatusLineManager().setMessage(message); } + + public void clearStatusBar() + { + populateStatusBar(""); + } public void back() throws Exception { diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java index eb34f6c51c..655718c098 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java @@ -1002,6 +1002,14 @@ public class ViewUtility _mbeanView.populateStatusBar(icon, failureMessage); } } + + public static void clearStatusBar() + { + if(_mbeanView != null) + { + _mbeanView.clearStatusBar(); + } + } public static void centerChildInParentShell(Shell parent, Shell child) { diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java index df2a1eca59..c5ab5184ee 100644 --- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java +++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java @@ -700,14 +700,38 @@ public class QueueTypeTabControl extends MBeanTypeTabControl ArrayList<ManagedBean> selectedMBeans = new ArrayList<ManagedBean>(); + boolean allSucceded = true; //the entries are created from an List<Object> with the attribute values (name first) for(int index = 0; index < selectedIndices.length ; index++) { List<Object> queueEntry = (List<Object>) _table.getItem(selectedIndices[index]).getData(); String queueName = (String) queueEntry.get(0); - selectedMBeans.add(_serverRegistry.getQueue(queueName, _virtualHost)); + + ManagedBean queueMBean = _serverRegistry.getQueue(queueName, _virtualHost); + + //check queue had not already been unregistered before trying to add it + if(queueMBean != null) + { + selectedMBeans.add(queueMBean); + } + else + { + allSucceded = false; + } } + if(allSucceded) + { + //ensure the status bar is cleared of any previous failures added by the below + ViewUtility.clearStatusBar(); + } + else + { + ViewUtility.operationFailedStatusBarMessage("A selected queue could not be added as it was no longer registered"); + refresh(); + } + + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); NavigationView view = (NavigationView)window.getActivePage().findView(NavigationView.ID); |