summaryrefslogtreecommitdiff
path: root/java/tools
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2012-04-06 10:51:21 +0000
committerRobert Gemmell <robbie@apache.org>2012-04-06 10:51:21 +0000
commit6bf1950a62231f036a4567d17a8d8bcb34a2c410 (patch)
treeaf47509e6bb60132abfc95ea1d56ee83fbcae1f4 /java/tools
parent6ca0f3ab3be2f37fc5819e33c21db644497a29ba (diff)
downloadqpid-python-6bf1950a62231f036a4567d17a8d8bcb34a2c410.tar.gz
QPID-3911: Fix deadlock on concurrent invocation of MessageConsumer#close() and Session#rollback() from consumer MessageListener
This patch contains the following changes: - Add synchronization on AMSession#_messageDeliveryLock into MessageConsumer#close() in order to block until message listener in progress has completed(as required in JMS javadoc for MessageConsumer#close()). - Change the session dispatcher to stop messages delivery into consumer local message queue if the consumer in the process of closing. This eliminates the need to stop the dispatcher on rejecting pending messages for closing consumer. - Remove the synchronization on the dispatcher lock from AMQSession.Dispatcher#rejectPending and code to stop the dispatcher, as we are synchronizing on the deliveryLock now and incoming messages are not dispatched into closing consumers anymore. - Add a system test to reproduce the deadlock and verify its resolution. Applied patch from Oleksandr Rudyy <orudyy@gmail.com> git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1310275 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/tools')
0 files changed, 0 insertions, 0 deletions