[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