You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ru...@apache.org on 2007/09/19 15:24:51 UTC

svn commit: r577300 - in /incubator/qpid/branches/M2.0.0.0_patch: ./ java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionImpl.java java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java

Author: rupertlssmith
Date: Wed Sep 19 06:24:50 2007
New Revision: 577300

URL: http://svn.apache.org/viewvc?rev=577300&view=rev
Log:
Merged revisions 575811 via svnmerge from 
https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.1

........
  r575811 | ritchiem | 2007-09-14 23:47:52 +0100 (Fri, 14 Sep 2007) | 1 line
  
  QPID-531 : NO_ACK fix. Added a decrementReference in SubscriptionImpl after the message has been sent. This was previously done inside dequeueMessage() but when the reference counting was reworked earlier in the year it was moved out of that method.. but all the uses of dequeueMessage were not evaluated. The existing AckTest didon't detect this error as it only occurs with persistent messages which the client sends by default. The AckTest however only tests transient messages. Updated Test for NO_ACK raised JIRA QPID-602 to cover updating the rest of the AckTests
........

Modified:
    incubator/qpid/branches/M2.0.0.0_patch/   (props changed)
    incubator/qpid/branches/M2.0.0.0_patch/java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionImpl.java
    incubator/qpid/branches/M2.0.0.0_patch/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java

Propchange: incubator/qpid/branches/M2.0.0.0_patch/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Sep 19 06:24:50 2007
@@ -1 +1 @@
-/incubator/qpid/branches/M2.1:447994-563986,574902,575738
+/incubator/qpid/branches/M2.1:447994-563986,574902,575738,575811

Modified: incubator/qpid/branches/M2.0.0.0_patch/java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionImpl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2.0.0.0_patch/java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionImpl.java?rev=577300&r1=577299&r2=577300&view=diff
==============================================================================
--- incubator/qpid/branches/M2.0.0.0_patch/java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionImpl.java (original)
+++ incubator/qpid/branches/M2.0.0.0_patch/java/broker/src/main/java/org/apache/qpid/server/queue/SubscriptionImpl.java Wed Sep 19 06:24:50 2007
@@ -307,7 +307,12 @@
                 }
 
                 protocolSession.getProtocolOutputConverter().writeDeliver(msg, channel.getChannelId(), deliveryTag, consumerTag);
-
+				
+                if (!_acks)
+                {
+                    msg.decrementReference(storeContext);
+                }
+				
             }
         }
         finally

Modified: incubator/qpid/branches/M2.0.0.0_patch/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/M2.0.0.0_patch/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java?rev=577300&r1=577299&r2=577300&view=diff
==============================================================================
--- incubator/qpid/branches/M2.0.0.0_patch/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java (original)
+++ incubator/qpid/branches/M2.0.0.0_patch/java/systests/src/main/java/org/apache/qpid/server/queue/AckTest.java Wed Sep 19 06:24:50 2007
@@ -187,6 +187,25 @@
         UnacknowledgedMessageMap map = _channel.getUnacknowledgedMessageMap();
         assertTrue(map.size() == 0);
         assertTrue(_messageStore.getMessageMetaDataMap().size() == 0);
+        assertTrue(_messageStore.getContentBodyMap().size() == 0);
+
+    }
+
+    /**
+     * Tests that in no-ack mode no messages are retained
+     */
+    public void testPersistentNoAckMode() throws AMQException
+    {
+        // false arg means no acks expected
+        _subscription = new SubscriptionImpl(5, _protocolSession, DEFAULT_CONSUMER_TAG, false);
+        final int msgCount = 10;
+        publishMessages(msgCount, true);
+
+        UnacknowledgedMessageMap map = _channel.getUnacknowledgedMessageMap();
+        assertTrue(map.size() == 0);
+        assertTrue(_messageStore.getMessageMetaDataMap().size() == 0);
+        assertTrue(_messageStore.getContentBodyMap().size() == 0);
+
     }
 
     /**