[jboss-cvs] JBoss Messaging SVN: r1380 - in trunk: . tests/src/org/jboss/test/messaging/core/local/base

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Sep 28 17:01:55 EDT 2006


Author: ovidiu.feodorov at jboss.com
Date: 2006-09-28 17:01:53 -0400 (Thu, 28 Sep 2006)
New Revision: 1380

Modified:
   trunk/messaging.iml
   trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java
Log:
added extra test that checks channel's behavior in case of duplicate acknowledgment

Modified: trunk/messaging.iml
===================================================================
--- trunk/messaging.iml	2006-09-28 20:54:37 UTC (rev 1379)
+++ trunk/messaging.iml	2006-09-28 21:01:53 UTC (rev 1380)
@@ -19,6 +19,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/tests/src" isTestSource="false" />
+      <excludeFolder url="file://$MODULE_DIR$/output" />
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />

Modified: trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java	2006-09-28 20:54:37 UTC (rev 1379)
+++ trunk/tests/src/org/jboss/test/messaging/core/local/base/PagingFilteredQueueTestBase.java	2006-09-28 21:01:53 UTC (rev 1380)
@@ -5233,6 +5233,48 @@
    }
 
    /**
+    * Test duplicate acknowledgment.
+    */
+   public void testRecoverableChannel_27_Duplicate_ACK() throws Throwable
+   {
+      if (!queue.isRecoverable())
+      {
+         // we test only recoverable channels now
+         return;
+      }
+
+      // add an NACKING receiver to the channel
+      SimpleReceiver r = new SimpleReceiver("NackingReceiver", SimpleReceiver.ACCEPTING);
+      assertTrue(queue.add(r));
+
+      MessageReference ref = createReference(0, true, "payload");
+      SimpleDeliveryObserver observer = new SimpleDeliveryObserver();
+
+      // non-transacted send, reliable message, one message
+      queue.handle(observer, ref, null);
+
+      Message ackm = (Message)r.getMessages().get(0);
+
+      // acknowledge once
+      r.acknowledge(ackm, null);
+
+      assertTrue(queue.browse().isEmpty());
+
+      // acknowledge twice
+      try
+      {
+         r.acknowledge(ackm, null);
+      }
+      catch(IllegalStateException e)
+      {
+         // OK
+      }
+
+      assertTrue(queue.browse().isEmpty());
+   }
+
+
+   /**
     * The same test as before, but with a Receiver configured to acknowledge immediately
     * on the Delivery. Simulates a race condition in which the acknoledgment arrives before
     * the Delivery is returned to channel.




More information about the jboss-cvs-commits mailing list