code: @Override
  	protected final void sendToDestination(Destination destination, boolean destinationOverride, Message srcMessage, int deliveryMode, int priority, long timeToLive) throws JMSException
      {
          // Check that the destination was specified
          if (destination == null)
              throw new InvalidDestinationException("Destination not specified");  // [JMS SPEC]
  
          // Create an internal copy if necessary
          AbstractMessage message = MessageTools.makeInternalCopy(srcMessage);
          
          externalAccessLock.readLock().lock();
          try
  		{
      		checkNotClosed();
      		
  	        // Dispatch to session
              ((LocalSession)session).dispatch(message);
  		}
          finally
          {
          	externalAccessLock.readLock().unlock();
          }
      }
docs: /* (non-Javadoc)
  @see net.timewalker.ffmq4.common.session.AbstractMessageProducer#sendToDestination(javax.jms.Destination, boolean, javax.jms.Message, int, int, long)