docs: public boolean shouldEncodeURL(String pURL, HttpServletRequest pRequest) {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[SHOULD_ENCODE_URL]);
          }
  
          // per spec - For example, if the browser supports cookies, or session
          // tracking is turned off, URL encoding is unnecessary.
          // 6.1 and previous releases always encoded the url if it was set ... if a
          // customer wants this functionality, they should set the alwaysEncodeURL
          // property
          if (!SessionManagerConfig.isAlwaysEncodeURL() && _smc.getEnableCookies() && pRequest.getHeader("Cookie") != null) {
              if (SessionManagerConfig.checkSessionCookieNameOnEncodeURL()) {
                  Cookie[] cookies = pRequest.getCookies();
                  for (int i = 0; i < cookies.length; i++ ) {
                      if (cookies[i].getName().equals(_smc.getSessionCookieName())) {
                          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                              LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SHOULD_ENCODE_URL], "false - A http session cookie was found");
                          }                                            
                          return false;
                      }
                  } 
              } else {            
                  if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SHOULD_ENCODE_URL], "false - A cookie was found");
                  }
                  return false;
              }
          }
  
          if (!_smc.getEnableUrlRewriting()) {
              if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                  LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SHOULD_ENCODE_URL], "false - encodeOff");
              }
              return false;
          }
  
          if (!isProtocolSwitch(pURL, pRequest)) {
              if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                  LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SHOULD_ENCODE_URL], "true - encodeProtocolSwitchOff");
              }
              return true;
          } else {
              if (_smc.getEnableUrlProtocolSwitchRewriting()) {
                  if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SHOULD_ENCODE_URL], "true - encodeProtocolSwitchOn");
                  }
                  return true;
              } else {
                  if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SHOULD_ENCODE_URL], "false");
                  }
                  return false;
              }
          }
      }