docs: @Override
      public Destination getJMSReplyTo() throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "getJMSReplyTo");
  
          // If we have not cached the replyTo destination.
          if (replyTo == null) {
              List<SIDestinationAddress> rrp = msg.getReverseRoutingPath();
  
              SICoreConnection siConn = null;
              if (theSession != null)
                  siConn = theSession.getCoreConnection();
  
              // Use this utility method to obtain the full representation & store in the cache
              replyTo = JmsDestinationImpl.getJMSReplyToInternal(msg, rrp, siConn);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "getJMSReplyTo", replyTo);
          return replyTo;
      }