org.switchyard.component.common.SynchronousInOutHandler class uses BlockingQueue for storing a response. Also it uses "synchronized" in few places while dealing the queue. Why is that needed as BlockingQueue is threadsafe? Or does synchronization there serve different purpose?