Delivery Manager no longer uses locks everytime a message is received.  Instead all incoming messages are added to a ConcurrentLinkedQueue that is processed by the delivery thread when it calls the 'getDeliverableMessages' method.  The advantages of this approach are that contention is removed from the delivery process.  A possible disadvantage is that the delivery thread is doing too much, which could cause performance issues with a real world application.