code: @Override
  	public TopicSubscriber createSubscriber(Topic topic, String messageSelector, boolean noLocal) throws JMSException
      {
      	externalAccessLock.readLock().lock();
      	try
  		{
  	        checkNotClosed();
  	        
  	        RemoteTopicSubscriber subscriber =  new RemoteTopicSubscriber(idProvider.createID(),
  	        		                                                      this,
  	                                                                      DestinationTools.asRef(topic),
  	                                                                      messageSelector,
  	                                                                      noLocal);
  	        registerConsumer(subscriber);
  	        subscriber.remoteInit();
  	        return subscriber;
  		}
      	finally
      	{
      		externalAccessLock.readLock().unlock();
      	}
      }
docs: /* (non-Javadoc)
  @see javax.jms.TopicSession#createSubscriber(javax.jms.Topic, java.lang.String, boolean)