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 2008/09/04 18:04:28 UTC

svn commit: r692134 - /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java

Author: rajdavies
Date: Thu Sep  4 09:04:27 2008
New Revision: 692134

URL: http://svn.apache.org/viewvc?rev=692134&view=rev
Log:
Applied patch for https://issues.apache.org/activemq/browse/AMQ-1833

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java?rev=692134&r1=692133&r2=692134&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/Topic.java Thu Sep  4 09:04:27 2008
@@ -17,10 +17,10 @@
 package org.apache.activemq.broker.region;
 
 import java.io.IOException;
-import java.util.LinkedList;
-import java.util.Set;
 import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CopyOnWriteArraySet;
@@ -28,11 +28,9 @@
 import org.apache.activemq.broker.BrokerService;
 import org.apache.activemq.broker.ConnectionContext;
 import org.apache.activemq.broker.ProducerBrokerExchange;
-import org.apache.activemq.broker.region.policy.DeadLetterStrategy;
 import org.apache.activemq.broker.region.policy.DispatchPolicy;
 import org.apache.activemq.broker.region.policy.FixedSizedSubscriptionRecoveryPolicy;
 import org.apache.activemq.broker.region.policy.NoSubscriptionRecoveryPolicy;
-import org.apache.activemq.broker.region.policy.SharedDeadLetterStrategy;
 import org.apache.activemq.broker.region.policy.SimpleDispatchPolicy;
 import org.apache.activemq.broker.region.policy.SubscriptionRecoveryPolicy;
 import org.apache.activemq.command.ActiveMQDestination;
@@ -564,7 +562,8 @@
     protected void dispatch(final ConnectionContext context, Message message) throws Exception {
         destinationStatistics.getMessages().increment();
         destinationStatistics.getEnqueues().increment();
-        dispatchValve.increment();      
+        dispatchValve.increment();   
+        MessageEvaluationContext msgContext = null;
         try {
             if (!subscriptionRecoveryPolicy.add(context, message)) {
                 return;
@@ -575,16 +574,18 @@
                     return;
                 }
             }
-            MessageEvaluationContext msgContext = context.getMessageEvaluationContext();
+            msgContext = context.getMessageEvaluationContext();
             msgContext.setDestination(destination);
             msgContext.setMessageReference(message);
             if (!dispatchPolicy.dispatch(message, msgContext, consumers)) {
                 onMessageWithNoConsumers(context, message);
-            }
-            msgContext.clear();
+            }  
             
         } finally {
             dispatchValve.decrement();
+            if(msgContext != null) {
+                msgContext.clear();
+            }
         }
     }