docs: @Override
      public Object getSession(ServletRequest request, ServletResponse response, SessionAffinityContext affinityContext, boolean create) {
  
          /*
           * Check to see if the request provides a JSESSIONID cookie
           */
          String sessionID = _sam.getInUseSessionID(request, affinityContext);
          int sessionVersion = _sam.getInUseSessionVersion(request, affinityContext); // affinityContext.getRequestedSessionVersion();
          ISession session = null;
  
          /*
           * If the sessionID is not null, this may be a request with an existing
           * session.
           */
          if (sessionID != null) {
              session = (ISession) getSession(sessionID, sessionVersion, true, null);
              if (session == null && affinityContext.isRequestedSessionIDFromCookie() // perform allIds call and reset sac
                              && !affinityContext.isAllSessionIdsSetViaSet()){  //PM89885 add another check for isAllSessionIdsSetViaSet since we may have done a set in HttpSessionContextImpl.getIHttpSession
                  List allSessionIds = _sam.getAllCookieValues(request);
                  affinityContext.setAllSessionIds(allSessionIds);
              }
          }
  
          while ((session == null) && (_sam.setNextId(affinityContext))) {
              sessionID = _sam.getInUseSessionID(request, affinityContext);
              sessionVersion = _sam.getInUseSessionVersion(request, affinityContext); // affinityContext.getRequestedSessionVersion();
              session = (ISession) getSession(sessionID, sessionVersion, true, null);
          }
  
          /*
           * If the session is null, create a new one if required. The session manager
           * will check
           * to see if an alternate webmodule has a session created using
           * this session id. If not, the session object returned may have a different
           * session id from the one supplied.
           */
          if ((session == null) && create) {
              boolean reuseThisID = false;
              if (_store.getShouldReuseId() || affinityContext.isResponseIdSet() || affinityContext.isRequestedSessionIDFromSSL()) {
                  reuseThisID = true;
              }
              session = createISession(sessionID, sessionVersion, reuseThisID);
          }
  
          return adaptAndSetCookie(request, response, affinityContext, session);
  
      }