code: public JsMessage getSent(boolean copy) throws MessageCopyFailedException {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "getSent", copy);
  
      /* Now get the JsMessage to return */
      JsMessageImpl newMsg;
  
      /* If a copy is required, obtain one */
      if (copy) {
        newMsg = createNew();
  
        /* Reset the original's cached lengths as the content may be about to be  */
        /* completely changed by the producer.                                    */
        clearCachedLengths();
      }
  
      /* Otherwise we just return the original message. */
      else {
        newMsg = this;
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "getSent", newMsg);
      return newMsg;
    }
docs: /*
  Perform any send-time processing and return a 'safe copy' of the JsMessage.
  If the copy parameter is false, the 'safe copy' is the original message
  as no copy is actually required.
  <p>
  This method must be called by the Message processor during 'send'
  processing, AFTER the headers are set. The Message Processor should then
  use the returned message in the bus, which allows an Application to change the
  message it 'owns' without affectng the sent message.
  
  Javadoc description supplied by JsMessage interface.