From commits-return-12018-apmail-activemq-commits-archive=activemq.apache.org@activemq.apache.org Tue Oct 13 15:31:13 2009 Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 34097 invoked from network); 13 Oct 2009 15:31:13 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 13 Oct 2009 15:31:13 -0000 Received: (qmail 76480 invoked by uid 500); 13 Oct 2009 15:31:13 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 76445 invoked by uid 500); 13 Oct 2009 15:31:13 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 76430 invoked by uid 99); 13 Oct 2009 15:31:13 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Oct 2009 15:31:13 +0000 X-ASF-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00 X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Oct 2009 15:31:10 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id BBB6423888BD; Tue, 13 Oct 2009 15:30:50 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r824807 - in /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network: DiscoveryNetworkConnector.java NetworkConnector.java Date: Tue, 13 Oct 2009 15:30:50 -0000 To: commits@activemq.apache.org From: gtully@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091013153050.BBB6423888BD@eris.apache.org> Author: gtully Date: Tue Oct 13 15:30:50 2009 New Revision: 824807 URL: http://svn.apache.org/viewvc?rev=824807&view=rev Log: resolve https://issues.apache.org/activemq/browse/AMQ-2448 - failed network bridge being incorrectly recorded in a list (and leaked), issue introduced by https://issues.apache.org/activemq/browse/AMQ-2298 now resolved by reusing exsiting correctly managed list of bridges Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java?rev=824807&r1=824806&r2=824807&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/DiscoveryNetworkConnector.java Tue Oct 13 15:30:50 2009 @@ -48,7 +48,7 @@ private static final Log LOG = LogFactory.getLog(DiscoveryNetworkConnector.class); private DiscoveryAgent discoveryAgent; - private ConcurrentHashMap bridges = new ConcurrentHashMap(); + private Map parameters; public DiscoveryNetworkConnector() { Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java?rev=824807&r1=824806&r2=824807&view=diff ============================================================================== --- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java (original) +++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/network/NetworkConnector.java Tue Oct 13 15:30:50 2009 @@ -16,6 +16,19 @@ */ package org.apache.activemq.network; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; + +import javax.management.MalformedObjectNameException; +import javax.management.ObjectName; + import org.apache.activemq.Service; import org.apache.activemq.broker.BrokerService; import org.apache.activemq.broker.jmx.AnnotatedMBean; @@ -30,17 +43,6 @@ import org.apache.activemq.util.ServiceSupport; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.CopyOnWriteArrayList; -import javax.management.MalformedObjectNameException; -import javax.management.ObjectName; /** * @version $Revision$ @@ -50,6 +52,8 @@ private static final Log LOG = LogFactory.getLog(NetworkConnector.class); protected URI localURI; protected ConnectionFilter connectionFilter; + protected ConcurrentHashMap bridges = new ConcurrentHashMap(); + protected ServiceSupport serviceSupport = new ServiceSupport() { protected void doStart() throws Exception { @@ -67,8 +71,7 @@ private List staticallyIncludedDestinations = new CopyOnWriteArrayList(); private BrokerService brokerService; private ObjectName objectName; - private ConcurrentLinkedQueue configuredBridges = new ConcurrentLinkedQueue(); - + public NetworkConnector() { } @@ -187,7 +190,6 @@ dest = (ActiveMQDestination[])topics.toArray(dest); result.setDurableDestinations(dest); } - configuredBridges.add(result); return result; } @@ -268,10 +270,13 @@ // ask all the bridges as we can't know to which this consumer is tied public boolean removeDemandSubscription(ConsumerId consumerId) { boolean removeSucceeded = false; - for (DemandForwardingBridgeSupport bridge: configuredBridges) { - if (bridge.removeDemandSubscriptionByLocalId(consumerId)) { - removeSucceeded = true; - break; + for (NetworkBridge bridge : bridges.values()) { + if (bridge instanceof DemandForwardingBridgeSupport) { + DemandForwardingBridgeSupport demandBridge = (DemandForwardingBridgeSupport) bridge; + if (demandBridge.removeDemandSubscriptionByLocalId(consumerId)) { + removeSucceeded = true; + break; + } } } return removeSucceeded;