code: @Override
  	public MessageProducer createProducer(Destination destination) throws JMSException
      {
      	externalAccessLock.readLock().lock();
      	try
  		{
  	        checkNotClosed();
  	        LocalMessageProducer producer = new LocalMessageProducer(this,destination,idProvider.createID());
  	        registerProducer(producer);
  	        return producer;
  		}
      	finally
      	{
      		externalAccessLock.readLock().unlock();
      	}
      }
docs: /* (non-Javadoc)
  @see javax.jms.Session#createProducer(javax.jms.Destination)