You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by bh...@apache.org on 2007/01/30 16:03:10 UTC
svn commit: r501411 - in
/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui:
jmx/JMXServerRegistry.java views/OperationTabControl.java
Author: bhupendrab
Date: Tue Jan 30 07:03:09 2007
New Revision: 501411
URL: http://svn.apache.org/viewvc?view=rev&rev=501411
Log:
clearing the subscribed notifications map when notifications are unsubscribed.
Fixed the Widget Disposed exception in OperationTabControl.java
Modified:
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java?view=diff&rev=501411&r1=501410&r2=501411
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java Tue Jan 30 07:03:09 2007
@@ -212,21 +212,31 @@
_notificationsMap.get(mbean.getUniqueName()).clear();
}
+ /**
+ * Adds notification name and type to the map. The map contains all the notification names,
+ * subscribed for an mbean.
+ * @param mbean
+ * @param name
+ * @param type
+ */
public void addNotificationListener(ManagedBean mbean, String name, String type)
{
- HashMap<String, List<String>> map = _subscribedNotificationMap.get(mbean.getUniqueName());
+ // Get the subscribed notifications map for given mbean. If map is null then create a new one.
+ HashMap<String, List<String>> map = _subscribedNotificationMap.get(mbean.getUniqueName());
if (map == null)
{
map = new HashMap<String, List<String>>();
_subscribedNotificationMap.put(mbean.getUniqueName(),map);
}
+ // Get the list of notification types for given notification name. If null, then create a new list.
List<String> list = map.get(name);
if (list == null)
{
list = new ArrayList<String>();
map.put(name, list);
}
+ // Now add the notification type to the list
if (Constants.ALL.equals(type))
{
List<NotificationInfoModel> infoList = _notificationInfoMap.get(mbean.getUniqueName());
@@ -247,9 +257,12 @@
list.add(type);
}
- System.out.println("Subscribed for notification :" + mbean.getUniqueName());
+ //System.out.println("Subscribed for notification :" + mbean.getUniqueName());
}
+ /**
+ * Checks if the given notification name and type are subscribed for the mbean.
+ */
public boolean hasSubscribedForNotifications(ManagedBean mbean, String name, String type)
{
if (_subscribedNotificationMap.containsKey(mbean.getUniqueName()))
@@ -266,11 +279,20 @@
return false;
}
+ /**
+ * Clears the notification name and type information from the subscribed notifications map
+ * and removes the listener from mbeanserver connection
+ * @param mbean
+ * @param name
+ * @param type
+ * @throws Exception
+ */
public void removeNotificationListener(ManagedBean mbean, String name, String type) throws Exception
{
- System.out.println("Removed notification listener :" + mbean.getUniqueName() + name +type);
+ //System.out.println("Removed notification listener :" + mbean.getUniqueName() + name +type);
if (_subscribedNotificationMap.containsKey(mbean.getUniqueName()))
{
+ // get the notifications map. This map contains the notification name mapped with the notification types
HashMap<String, List<String>> map = _subscribedNotificationMap.get(mbean.getUniqueName());
if (map.containsKey(name))
{
@@ -281,7 +303,15 @@
else if (type != null)
{
map.get(name).remove(type);
+ if (map.get(name).isEmpty())
+ {
+ map.remove(name);
+ }
}
+ }
+ if (map.size() == 0)
+ {
+ _subscribedNotificationMap.remove(mbean.getUniqueName());
}
JMXManagedObject jmxbean = (JMXManagedObject)mbean;
Modified: incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java?view=diff&rev=501411&r1=501410&r2=501411
==============================================================================
--- incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java (original)
+++ incubator/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java Tue Jan 30 07:03:09 2007
@@ -503,7 +503,7 @@
*/
private void clearParameterValues(Composite control)
{
- if (control == null)
+ if (control == null || (control.isDisposed()))
return;
Control[] controls = control.getChildren();