[jboss-cvs] JBoss Messaging SVN: r7824 - branches/hudson_cp09/tests/src/org/jboss/test/messaging/jms.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Sep 24 06:24:37 EDT 2009
Author: gaohoward
Date: 2009-09-24 06:24:36 -0400 (Thu, 24 Sep 2009)
New Revision: 7824
Modified:
branches/hudson_cp09/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java
Log:
fix
Modified: branches/hudson_cp09/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java
===================================================================
--- branches/hudson_cp09/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java 2009-09-24 09:26:17 UTC (rev 7823)
+++ branches/hudson_cp09/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java 2009-09-24 10:24:36 UTC (rev 7824)
@@ -24,6 +24,7 @@
package org.jboss.test.messaging.jms;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Random;
import javax.jms.Connection;
@@ -815,6 +816,8 @@
session = conn.createSession(isTx, isTx ? Session.SESSION_TRANSACTED : Session.CLIENT_ACKNOWLEDGE);
MessageConsumer cons = session.createConsumer(dest);
+
+ HashMap<String, TextMessage> redelivered = new HashMap<String, TextMessage>();
//if we can't receive a msg in 10 sec, we think no message available
//either all messages has been received, or something wrong.
@@ -825,11 +828,12 @@
if (isTx)
{
int rbIdx = rand.nextInt(4);
- //%25 change of rollback
- if ( rbIdx == 1 )
+ //%25 change of rollback. only rollback once for each msg to avoid possible going to DLQ
+ if ((rbIdx == 1) && (redelivered.get(rm.getText()) == null))
{
//roll back
session.rollback();
+ redelivered.put(rm.getText(), rm);
}
else
{
@@ -843,11 +847,12 @@
else
{
int recoverIdx = rand.nextInt(4);
- //%25 chance of recover
- if (recoverIdx == 0)
+ //%25 chance of recover. only recover once for each msg to avoid possible going to DLQ
+ if ((recoverIdx == 0) && (redelivered.get(rm.getText()) == null))
{
//redeliver
session.recover();
+ redelivered.put(rm.getText(), rm);
}
else
{
@@ -862,6 +867,7 @@
rm = (TextMessage)cons.receive(10000);
}
+ redelivered.clear();
//receive finish, thread ends.
}
catch (JMSException e)
More information about the jboss-cvs-commits
mailing list