docs: @Override
      public HttpRequestMessage duplicate() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "Duplicating the request message: " + this);
          }
  
          HttpRequestMessageImpl msg = null;
          HttpObjectFactory factory = getObjectFactory();
          if (null == factory) {
              msg = new HttpRequestMessageImpl();
          } else {
              msg = factory.getRequest();
          }
          msg.setIncoming(isIncoming());
          // set the request specifics
          msg.setMethod(this.myMethod);
          msg.setRequestURI(this.myURIBytes);
          msg.setScheme(this.myScheme);
          msg.setQueryString(this.myQueryBytes);
          msg.iUrlPort = this.iUrlPort;
          msg.sUrlHost = this.sUrlHost;
          msg.iHdrPort = this.iHdrPort;
          msg.sHdrHost = this.sHdrHost;
  
          // set the common object values
          super.duplicate(msg);
          return msg;
      }