You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2010/07/27 19:04:30 UTC

svn commit: r979775 - /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java

Author: gtully
Date: Tue Jul 27 17:04:24 2010
New Revision: 979775

URL: http://svn.apache.org/viewvc?rev=979775&view=rev
Log:
resolve https://issues.apache.org/activemq/browse/AMQ-2850, still needs a kahadb variant 

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java?rev=979775&r1=979774&r2=979775&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/store/kahadaptor/KahaTopicReferenceStore.java Tue Jul 27 17:04:24 2010
@@ -106,6 +106,10 @@ public class KahaTopicReferenceStore ext
                 if (LOG.isTraceEnabled()) {
                     LOG.trace(destination.getPhysicalName() + " add reference: " + messageId);
                 }
+            } else {
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("no subscribers or duplicate add for: "  + messageId);
+                }
             }
         } finally {
             lock.unlock();
@@ -182,8 +186,10 @@ public class KahaTopicReferenceStore ext
                     if (ackContainer.isEmpty() || subscriberMessages.size() == 1 || isUnreferencedBySubscribers(key, subscriberMessages, messageId)) {
                         // no message reference held        
                         removeMessage = true;
+                        // ensure we don't later add a reference
+                        dispatchAudit.isDuplicate(messageId);
                         if (LOG.isDebugEnabled()) {
-                            LOG.debug(destination.getPhysicalName() + " remove with no outstanding reference (dup ack): " + messageId);
+                            LOG.debug(destination.getPhysicalName() + " remove with no outstanding reference (ack before add): " + messageId);
                         }
                     }
                 }