summaryrefslogtreecommitdiff
path: root/java/management/eclipse-plugin/src
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2010-08-27 20:25:49 +0000
committerRobert Gemmell <robbie@apache.org>2010-08-27 20:25:49 +0000
commitd8014dc0507d5f6dfa759e40cb21b597e6b69aaa (patch)
tree02e131f4a3990b35e08470335ab00ca73b62e40c /java/management/eclipse-plugin/src
parentb16bd3f6e83152eace352a47e78424db8df4171e (diff)
downloadqpid-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')
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java7
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java8
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java26
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);