You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ra...@apache.org on 2006/04/03 12:44:03 UTC
svn commit: r390998 -
/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
Author: rajdavies
Date: Mon Apr 3 03:43:55 2006
New Revision: 390998
URL: http://svn.apache.org/viewcvs?rev=390998&view=rev
Log:
prevent ObjectNames being unregistered from the MBeanServer if already removed in doStop()
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java?rev=390998&r1=390997&r2=390998&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagedRegionBroker.java Mon Apr 3 03:43:55 2006
@@ -22,7 +22,6 @@
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
-
import javax.management.InstanceNotFoundException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
@@ -34,7 +33,6 @@
import javax.management.openmbean.TabularData;
import javax.management.openmbean.TabularDataSupport;
import javax.management.openmbean.TabularType;
-
import org.apache.activemq.broker.Broker;
import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.broker.ConnectionContext;
@@ -62,10 +60,8 @@
import org.apache.activemq.util.SubscriptionKey;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap;
import edu.emory.mathcs.backport.java.util.concurrent.CopyOnWriteArraySet;
-
public class ManagedRegionBroker extends RegionBroker{
private static final Log log=LogFactory.getLog(ManagedRegionBroker.class);
private final MBeanServer mbeanServer;
@@ -163,11 +159,10 @@
String name="";
SubscriptionKey key=new SubscriptionKey(context.getClientId(),sub.getConsumerInfo().getSubcriptionName());
if(sub.getConsumerInfo().isDurable()){
- name = key.toString();
- } else {
- name = sub.getConsumerInfo().getConsumerId().toString();
+ name=key.toString();
+ }else{
+ name=sub.getConsumerInfo().getConsumerId().toString();
}
-
try{
ObjectName objectName=new ObjectName(brokerObjectName.getDomain()+":"+"BrokerName="+map.get("BrokerName")
+","+"Type=Subscription,"+"active=true,"+"name="+JMXSupport.encodeObjectNamePart(name)+"");
@@ -224,8 +219,9 @@
queues.remove(key);
temporaryQueues.remove(key);
temporaryTopics.remove(key);
- registeredMBeans.remove(key);
- mbeanServer.unregisterMBean(key);
+ if(registeredMBeans.remove(key)){
+ mbeanServer.unregisterMBean(key);
+ }
}
protected void registerSubscription(ObjectName key,ConsumerInfo info,SubscriptionKey subscriptionKey,
@@ -269,8 +265,9 @@
inactiveDurableTopicSubscribers.remove(key);
temporaryQueueSubscribers.remove(key);
temporaryTopicSubscribers.remove(key);
- registeredMBeans.remove(key);
- mbeanServer.unregisterMBean(key);
+ if(registeredMBeans.remove(key)){
+ mbeanServer.unregisterMBean(key);
+ }
DurableSubscriptionView view=(DurableSubscriptionView) durableTopicSubscribers.remove(key);
if(view!=null){
// need to put this back in the inactive list