code: private void sendUsingProducerSession(Message message) throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "sendUsingProducerSession", new Object[] { message });
  
          checkClosed();
          // check for sync/async conflicts
          session.checkSynchronousUsage("send");
          // if the supplied message is null, throw a jms MessageFormatException.
          if (message == null) {
              throw (MessageFormatException) JmsErrorUtils.newThrowable(
                                                                        MessageFormatException.class,
                                                                        "INVALID_VALUE_CWSIA0068",
                                                                        new Object[] { "message", null },
                                                                        tc);
          }
          if (propsOverriden) {
              // This block will be invoked if the user is flipping back and forth
              // between the multi-arg identified send, and this 1-arg send. In this
              // case we need to re-instate the dm, pri, ttl values from the producer.
              producerProperties.setInDeliveryMode(defaultDeliveryMode);
              producerProperties.setInPriority(defaultPriority);
              producerProperties.setInTTL(defaultTimeToLive);
  
              // Mark that we are back with the defaults so we don't do this set the
              // next time around.
              propsOverriden = false;
          }
  
          // Delegate to the internal send method.
          sendMessage(producerProperties, message, dest);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "sendUsingProducerSession");
  
      }
docs: This method is internal method which would send message to ME on top
  of producer session. This is called from Sync send and Async Send. In case of Sync send
  it would have guarded with monitor sessionSyncLock.
  
  @param msg