I'm using async message dispatch.
I've noticed the ActiveMQMessageConsumer class dispatches messages to its listeners while holding a mutex (method name: dispatch(MessageDispatch md), mutex name unconsumedMessages). This mutex needs to be grabbed in other situations as well (like closing the connection), which can lead to deadlocks. Is this really the best way of handling this?
I realize I can get around this problem in a number of ways, but this issue seems to be pretty deep in the client infrastructure, especially if another JMS framework is being used (like Spring JMS).