diff options
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/handler/TxCommitHandler.java')
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/handler/TxCommitHandler.java | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/handler/TxCommitHandler.java b/java/broker/src/main/java/org/apache/qpid/server/handler/TxCommitHandler.java index 6e8896a023..afa5fdb72a 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/handler/TxCommitHandler.java +++ b/java/broker/src/main/java/org/apache/qpid/server/handler/TxCommitHandler.java @@ -46,9 +46,9 @@ public class TxCommitHandler implements StateAwareMethodListener<TxCommitBody> { } - public void methodReceived(AMQStateManager stateManager, TxCommitBody body, int channelId) throws AMQException + public void methodReceived(AMQStateManager stateManager, TxCommitBody body, final int channelId) throws AMQException { - AMQProtocolSession session = stateManager.getProtocolSession(); + final AMQProtocolSession session = stateManager.getProtocolSession(); try { @@ -62,11 +62,19 @@ public class TxCommitHandler implements StateAwareMethodListener<TxCommitBody> { throw body.getChannelNotFoundException(channelId); } - channel.commit(); + channel.commit(new Runnable() + { + + @Override + public void run() + { + MethodRegistry methodRegistry = session.getMethodRegistry(); + AMQMethodBody responseBody = methodRegistry.createTxCommitOkBody(); + session.writeFrame(responseBody.generateFrame(channelId)); + } + }, true); + - MethodRegistry methodRegistry = session.getMethodRegistry(); - AMQMethodBody responseBody = methodRegistry.createTxCommitOkBody(); - session.writeFrame(responseBody.generateFrame(channelId)); } catch (AMQException e) |