summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/transactionlog/BaseTransactionLog.java59
1 files changed, 29 insertions, 30 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transactionlog/BaseTransactionLog.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transactionlog/BaseTransactionLog.java
index 8d7b22d470..7bf78ad977 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transactionlog/BaseTransactionLog.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transactionlog/BaseTransactionLog.java
@@ -114,36 +114,6 @@ public class BaseTransactionLog implements TransactionLog
{
context.dequeueMessage(queue, messageId);
- if (context.inTransaction())
- {
-
- Map<Long, List<AMQQueue>> messageMap = context.getDequeueMap();
-
- //For each Message ID that is in the map check
- Set<Long> messageIDs = messageMap.keySet();
-
- if (_logger.isInfoEnabled())
- {
- _logger.info("Pre-Processing single dequeue of:" + messageIDs);
- }
-
- Iterator iterator = messageIDs.iterator();
-
- while (iterator.hasNext())
- {
- Long messageID = (Long) iterator.next();
- //If we don't have a gloabl reference for this message then there is only a single enqueue
- //can check here to see if this is the last reference?
- if (_idToQueues.get(messageID) == null)
- {
- // Add the removal of the message to this transaction
- _delegate.removeMessage(context, messageID);
- // Remove this message ID as we have processed it so we don't reprocess after the main commmit
- iterator.remove();
- }
- }
- }
-
_delegate.dequeueMessage(context, queue, messageId);
if (!context.inTransaction())
@@ -172,6 +142,35 @@ public class BaseTransactionLog implements TransactionLog
public void commitTran(StoreContext context) throws AMQException
{
+
+ Map<Long, List<AMQQueue>> messageMap = context.getDequeueMap();
+
+ //For each Message ID that is in the map check
+ Set<Long> messageIDs = messageMap.keySet();
+
+ if (_logger.isInfoEnabled())
+ {
+ _logger.info("Pre-Processing single dequeue of:" + messageIDs);
+ }
+
+ Iterator iterator = messageIDs.iterator();
+
+ while (iterator.hasNext())
+ {
+ Long messageID = (Long) iterator.next();
+ //If we don't have a gloabl reference for this message then there
+ // is only a single enqueue can check here to see if this is the
+ // last reference?
+ if (_idToQueues.get(messageID) == null)
+ {
+ // Add the removal of the message to this transaction
+ _delegate.removeMessage(context, messageID);
+ // Remove this message ID as we have processed it so we don't
+ // reprocess after the main commmit
+ iterator.remove();
+ }
+ }
+
//Perform real commit of current data
_delegate.commitTran(context);