[jboss-cvs] JBoss Messaging SVN: r7825 - branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Sep 24 08:13:50 EDT 2009
Author: gaohoward
Date: 2009-09-24 08:13:49 -0400 (Thu, 24 Sep 2009)
New Revision: 7825
Modified:
branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java
Log:
fix intermittent test failure
Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java 2009-09-24 10:24:36 UTC (rev 7824)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/OrderingGroupGeneralTest.java 2009-09-24 12:13:49 UTC (rev 7825)
@@ -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;
@@ -803,6 +804,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.
@@ -813,11 +816,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
{
@@ -831,11 +835,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
{
@@ -850,6 +855,7 @@
rm = (TextMessage)cons.receive(10000);
}
+ redelivered.clear();
//receive finish, thread ends.
}
catch (JMSException e)
More information about the jboss-cvs-commits
mailing list