docs: private synchronized void parseParameters() {
          if (null != this.queryParams) {
              // already parsed
              return;
          }
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
              Tr.debug(tc, "parseParameters for " + this);
          }
  
          String encoding = getCharset().name();
          // PQ99481... non-English environments are too complex at the moment due to
          // the fact that current clients are not enforcing the proper Content-Type
          // header usage therefore figuring out what encoding to use involves system
          // properties, WAS config files, etc. So query parameters will only be
          // pulled
          // from the URI and not POST formdata
  
          // now merge in any possible URL params
          String queryString = getQueryString();
          if (null != queryString) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Parsing URL query data");
              }
              this.queryParams = HttpChannelUtils.parseQueryString(queryString, encoding);
          } else {
              // if we didn't have any data then just create an empty table
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  // PQ99481 Tr.debug(tc, "No parameter data found in body or URL");
                  Tr.debug(tc, "No query data found in URL");
              }
              this.queryParams = new Hashtable<String, String[]>();
          }
      }