code: public Message receiveMessage()
      {
          DualMessageQueue baseMessageQueue = (DualMessageQueue)this.getMessageQueue();
          if (baseMessageQueue == null)
              return null;    // In free
          return baseMessageQueue.getMessageStack().receiveMessage();
      }
docs: Process the receive message call.
  Do NOT receive from the remote server... DO receive from the local queue.
  The worker thread handle remote receives and adds them to the local queue.
  @return The next message on the queue (hangs until one is available).