code: @Override
  	public QueueReceiver createReceiver(Queue queue, String messageSelector) throws JMSException
      {
      	externalAccessLock.readLock().lock();
      	try
  		{
  	        checkNotClosed();
  	        
  	        RemoteQueueReceiver receiver =  new RemoteQueueReceiver(idProvider.createID(),
  	        		                                                this,
  	                                                                DestinationTools.asRef(queue),
  	                                                                messageSelector);
  	        registerConsumer(receiver);
  	        receiver.remoteInit();
  	        return receiver;
  		}
      	finally
      	{
      		externalAccessLock.readLock().unlock();
      	}
      }
docs: /*
  (non-Javadoc)
  @see javax.jms.QueueSession#createReceiver(javax.jms.Queue, java.lang.String)