docs: public String getRequestedSessionId(HttpServletRequest _request)
    {
      SessionAffinityContext sac = getSessionAffinityContext(_request);
        
      if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
        LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[GET_REQUESTED_SESSION_ID], sac.isFirstSessionIdValid());
      }
  
      String reqSessId = sac.getRequestedSessionID();
  
      // if we have multiple session ids, the "requested" one is either the
      // first one that is valid, or if none are valid, the first one in the list
      boolean idIsValid = _coreHttpSessionManager.isRequestedSessionIDValid(reqSessId, 0);
  
      // getSession may or may not have been called. We need to check if the first
      // id is valid and if not, then check if we need to update the allSessionIds
      // list
      if (reqSessId != null && !idIsValid && !sac.isAllSessionIdsSetViaSet()
                      || !sac.isAllSessionIdsSetViaSet() && !sac.isFirstSessionIdValid()) { //PM89885 added || condition
        List allSessionIds = _sam.getAllCookieValues(_request);
        sac.setAllSessionIds(allSessionIds);
      }
  
      if (sac.getNumSessionIds() > 1)
      {
        if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE))
        {
          LoggingUtil.SESSION_LOGGER_CORE.logp(Level.FINE, methodClassName, methodNames[GET_REQUESTED_SESSION_ID], "multiple incoming ids");
        }
        while (!idIsValid && _sam.setNextId(sac))
        {
          reqSessId = sac.getRequestedSessionID();
          idIsValid = _coreHttpSessionManager.isRequestedSessionIDValid(reqSessId, 0);
        }
        if (!idIsValid)
        {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE))
          {
            LoggingUtil.SESSION_LOGGER_CORE.logp(Level.FINE, methodClassName, methodNames[GET_REQUESTED_SESSION_ID], "none valid - return first");
          }
          reqSessId = sac.getFirstRequestedSessionID();
        }
      } else if (!idIsValid && !sac.isFirstSessionIdValid()){
          // Only session available is the one sent from the client so return that one
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
            LoggingUtil.SESSION_LOGGER_CORE.logp(Level.FINE, methodClassName, methodNames[GET_REQUESTED_SESSION_ID], "return the only one id sent from client");
          }
          reqSessId = sac.getFirstRequestedSessionID();
      }
      if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE))
      {
        LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[GET_REQUESTED_SESSION_ID], reqSessId);
      }
      return reqSessId;
    }