|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjunit.framework.Assert
junit.framework.TestCase
org.apache.qpid.test.utils.QpidTestCase
org.apache.qpid.test.utils.QpidBrokerTestCase
org.apache.qpid.client.ResetMessageListenerTest
public class ResetMessageListenerTest
QPID-293 Setting MessageListener after connection has started can cause messages to be "lost" on a internal delivery queue
The message delivery process: Mina puts a message on _queue in AMQSession and the dispatcher thread take()s from here and dispatches to the _consumers. If the _consumer1 doesn't have a message listener set at connection start then messages are stored on _synchronousQueue (which needs to be > 1 to pass JMS TCK as multiple consumers on a session can run in any order and a synchronous put/poll will block the dispatcher). When setting the message listener later the _synchronousQueue is just poll()'ed and the first message delivered the remaining messages will be left on the queue and lost, subsequent messages on the session will arrive first.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.apache.qpid.test.utils.QpidBrokerTestCase |
---|
QpidBrokerTestCase.MessageType |
Field Summary | |
---|---|
(package private) Session |
_clientSession
|
(package private) Context |
_context
|
(package private) MessageProducer |
_producer
|
(package private) Session |
_producerSession
|
Fields inherited from class org.apache.qpid.test.utils.QpidBrokerTestCase |
---|
_broker, _brokerLanguage, _brokerLogPrefix, _brokerOutputStream, _brokerPersistent, _brokers, _configFile, _connectionFactory, _connections, _initialContext, _interleaveBrokerLog, _output, _outputFile, _testName, BROKER_READY, CONTENT, CPP, DEFAULT_MANAGEMENT_PORT, DEFAULT_MESSAGE_SIZE, DEFAULT_PORT, DEFAULT_SSL_PORT, DEFAULT_VM_PORT, EXTERNAL, INDEX, JAVA, LOGMONITOR_TIMEOUT, QPID_HOME, QpidHome, QUEUE, RECEIVE_TIMEOUT, TOPIC, VM |
Fields inherited from class org.apache.qpid.test.utils.QpidTestCase |
---|
MEMORY_STORE_CLASS_NAME, MS_CLASS_NAME_KEY |
Constructor Summary | |
---|---|
ResetMessageListenerTest()
|
Method Summary | |
---|---|
protected void |
setUp()
|
static junit.framework.Test |
suite()
|
protected void |
tearDown()
|
void |
testAsynchronousRecieve()
|
Methods inherited from class org.apache.qpid.test.utils.QpidTestCase |
---|
getTestProfileMessageStoreClassName, run |
Methods inherited from class junit.framework.TestCase |
---|
countTestCases, createResult, getName, run, runTest, setName, toString |
Methods inherited from class junit.framework.Assert |
---|
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
Context _context
MessageProducer _producer
Session _clientSession
Session _producerSession
Constructor Detail |
---|
public ResetMessageListenerTest()
Method Detail |
---|
protected void setUp() throws Exception
setUp
in class QpidBrokerTestCase
Exception
protected void tearDown() throws Exception
tearDown
in class QpidBrokerTestCase
Exception
public void testAsynchronousRecieve()
public static junit.framework.Test suite()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |