summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/test
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2009-04-08 19:44:34 +0000
committerMartin Ritchie <ritchiem@apache.org>2009-04-08 19:44:34 +0000
commit05fa2676fa1a25759b169dc1d43cec7111ccdbb7 (patch)
tree8ea89b0be884f54784363349b8ba55137e3c17fa /qpid/java/broker/src/test
parent091364abd873861ea9591e99fc48816cca2544ed (diff)
downloadqpid-python-05fa2676fa1a25759b169dc1d43cec7111ccdbb7.tar.gz
QPID-1794 : Clear the StoreContext after non-transactional processing. Updated BaseTransactionLog to synchronize the on the enqueued messages from the _idToQueue Map as this will be being modified by many ack-ing threads and closing/requeue threads. Updated BaseTransactionLogTest so that it uses a single StoreContext per test rather than a fresh context for each operation. This was masking the problem.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@763361 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src/test')
-rw-r--r--qpid/java/broker/src/test/java/org/apache/qpid/server/transactionlog/BaseTransactionLogTest.java32
1 files changed, 17 insertions, 15 deletions
diff --git a/qpid/java/broker/src/test/java/org/apache/qpid/server/transactionlog/BaseTransactionLogTest.java b/qpid/java/broker/src/test/java/org/apache/qpid/server/transactionlog/BaseTransactionLogTest.java
index a0c38ff0ad..c3ccde3844 100644
--- a/qpid/java/broker/src/test/java/org/apache/qpid/server/transactionlog/BaseTransactionLogTest.java
+++ b/qpid/java/broker/src/test/java/org/apache/qpid/server/transactionlog/BaseTransactionLogTest.java
@@ -51,11 +51,13 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
TestTransactionLog _transactionLog;
private ArrayList<AMQQueue> _queues;
private MockPersistentAMQMessage _message;
+ StoreContext _context;
public void setUp() throws Exception
{
super.setUp();
_transactionLog = new TestableBaseTransactionLog(this);
+ _context = new StoreContext();
}
public void testSingleEnqueueNoTransactional() throws AMQException
@@ -64,13 +66,13 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
_message = new MockPersistentAMQMessage(1L, this);
- _message.addContentBodyFrame(new StoreContext(), new MockContentChunk(100), true);
+ _message.addContentBodyFrame(_context, new MockContentChunk(100), true);
MessagePublishInfo mpi = new MessagePublishInfoImpl();
ContentHeaderBody chb = new ContentHeaderBody();
- _message.setPublishAndContentHeaderBody(new StoreContext(), mpi, chb);
+ _message.setPublishAndContentHeaderBody(_context, mpi, chb);
verifyMessageStored(_message.getMessageId());
// Enqueue
@@ -79,7 +81,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
MockAMQQueue queue = new MockAMQQueue(this.getName());
_queues.add(queue);
- _transactionLog.enqueueMessage(new StoreContext(), _queues, _message.getMessageId());
+ _transactionLog.enqueueMessage(_context, _queues, _message.getMessageId());
verifyEnqueuedOnQueues(_message.getMessageId(), _queues);
}
@@ -89,14 +91,14 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
// Enqueue a message to dequeue
testSingleEnqueueNoTransactional();
- _transactionLog.dequeueMessage(new StoreContext(), _queues.get(0), _message.getMessageId());
+ _transactionLog.dequeueMessage(_context, _queues.get(0), _message.getMessageId());
verifyMessageRemoved(_message.getMessageId());
}
public void testSingleEnqueueTransactional() throws AMQException
{
- StoreContext context = new StoreContext();
+ StoreContext context = _context;
_transactionLog.beginTran(context);
@@ -133,7 +135,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
// Enqueue a message to dequeue
testSingleEnqueueTransactional();
- StoreContext context = new StoreContext();
+ StoreContext context = _context;
_transactionLog.beginTran(context);
@@ -150,13 +152,13 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
_message = new MockPersistentAMQMessage(1L, this);
- _message.addContentBodyFrame(new StoreContext(), new MockContentChunk(100), true);
+ _message.addContentBodyFrame(_context, new MockContentChunk(100), true);
MessagePublishInfo mpi = new MessagePublishInfoImpl();
ContentHeaderBody chb = new ContentHeaderBody();
- _message.setPublishAndContentHeaderBody(new StoreContext(), mpi, chb);
+ _message.setPublishAndContentHeaderBody(_context, mpi, chb);
verifyMessageStored(_message.getMessageId());
// Enqueue
@@ -172,7 +174,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
queue = new MockAMQQueue(this.getName() + "3");
_queues.add(queue);
- _transactionLog.enqueueMessage(new StoreContext(), _queues, _message.getMessageId());
+ _transactionLog.enqueueMessage(_context, _queues, _message.getMessageId());
verifyEnqueuedOnQueues(_message.getMessageId(), _queues);
}
@@ -182,7 +184,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
// Enqueue a message to dequeue
testMultipleEnqueueNoTransactional();
- _transactionLog.dequeueMessage(new StoreContext(), _queues.get(0), _message.getMessageId());
+ _transactionLog.dequeueMessage(_context, _queues.get(0), _message.getMessageId());
ArrayList<AMQQueue> enqueued = _enqueues.get(_message.getMessageId());
@@ -192,7 +194,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
verifyEnqueuedOnQueues(_message.getMessageId(), _queues);
verifyMessageStored(_message.getMessageId());
- _transactionLog.dequeueMessage(new StoreContext(), _queues.get(0), _message.getMessageId());
+ _transactionLog.dequeueMessage(_context, _queues.get(0), _message.getMessageId());
assertFalse("Message still enqueued on the first queue,", enqueued.contains(_queues.get(0)));
_queues.remove(0);
@@ -218,7 +220,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
verifyMessageStored(_message.getMessageId());
- _transactionLog.dequeueMessage(new StoreContext(), _queues.get(0), _message.getMessageId());
+ _transactionLog.dequeueMessage(_context, _queues.get(0), _message.getMessageId());
verifyMessageRemoved(_message.getMessageId());
}
@@ -233,7 +235,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
public void testMultipleEnqueueTransactional() throws AMQException
{
- StoreContext context = new StoreContext();
+ StoreContext context = _context;
_transactionLog.beginTran(context);
@@ -276,7 +278,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
// Enqueue a message to dequeue
testMultipleEnqueueTransactional();
- StoreContext context = new StoreContext();
+ StoreContext context = _context;
_transactionLog.beginTran(context);
@@ -319,7 +321,7 @@ public class BaseTransactionLogTest extends TestCase implements TransactionLog
// Enqueue a message to dequeue
testMultipleEnqueueTransactional();
- StoreContext context = new StoreContext();
+ StoreContext context = _context;
_transactionLog.beginTran(context);