mirror of https://github.com/apache/activemq.git
a test variant to validate AMQ-1957
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@712117 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c57afb6289
commit
92e143155b
|
@ -623,4 +623,30 @@ public class JMSConsumerTest extends JmsTestSupport {
|
||||||
consumer = session.createConsumer(destination);
|
consumer = session.createConsumer(destination);
|
||||||
assertNull(consumer.receive(1000));
|
assertNull(consumer.receive(1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testRedispatchOfUncommittedTx() throws Exception {
|
||||||
|
|
||||||
|
connection.start();
|
||||||
|
Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
|
||||||
|
destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE);
|
||||||
|
|
||||||
|
sendMessages(connection, destination, 1);
|
||||||
|
|
||||||
|
MessageConsumer consumer = session.createConsumer(destination);
|
||||||
|
assertNotNull(consumer.receive(1000));
|
||||||
|
|
||||||
|
// install another consumer while message dispatch is unacked/uncommitted
|
||||||
|
Session redispatchSession = connection.createSession(true, Session.SESSION_TRANSACTED);
|
||||||
|
MessageConsumer redispatchConsumer = redispatchSession.createConsumer(destination);
|
||||||
|
|
||||||
|
// no commit so will auto rollback and get redispatched to redisptachConsumer
|
||||||
|
session.close();
|
||||||
|
|
||||||
|
assertNotNull(redispatchConsumer.receive(1000));
|
||||||
|
redispatchSession.commit();
|
||||||
|
|
||||||
|
assertNull(redispatchConsumer.receive(500));
|
||||||
|
redispatchSession.close();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue