You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2010/08/27 22:25:49 UTC

svn commit: r990254 - in /qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views: MBeanView.java ViewUtility.java type/QueueTypeTabControl.java

Author: robbie
Date: Fri Aug 27 20:25:49 2010
New Revision: 990254

URL: http://svn.apache.org/viewvc?rev=990254&view=rev
Log:
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

Modified:
    qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
    qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
    qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java

Modified: qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java?rev=990254&r1=990253&r2=990254&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java (original)
+++ qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java Fri Aug 27 20:25:49 2010
@@ -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
     {

Modified: qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java?rev=990254&r1=990253&r2=990254&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java (original)
+++ qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java Fri Aug 27 20:25:49 2010
@@ -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)
     {

Modified: qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java?rev=990254&r1=990253&r2=990254&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java (original)
+++ qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/type/QueueTypeTabControl.java Fri Aug 27 20:25:49 2010
@@ -700,13 +700,37 @@ public class QueueTypeTabControl extends
         
         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);



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org