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.