docs: public SessionAffinityContext analyzeSSLRequest(ServletRequest request, String sslSessionId) {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[ANALYZE_SSL_REQUEST]);
              LoggingUtil.SESSION_LOGGER_CORE.logp(Level.FINE, methodClassName, methodNames[ANALYZE_SSL_REQUEST], "SSL Id from Request = " + sslSessionId);
          }
  
          String sessionId = sslSessionId;
          boolean reqFromCookie = false;
          boolean reqFromURL = false;
          boolean reqFromSSL = false;
          SessionAffinityContext sessionAffinityContext = null;
          List allSessionIds = null;
  
          IExtendedRequest sessReq = (IExtendedRequest) request;
          if (sessionId != null) {
              reqFromSSL = true;
              String tempDummyId;
              String tempCacheId;
              if (_smc.isUsingMemory()) {
                  tempCacheId = "0000";
              } else {
                  tempCacheId = "0001";
              }
              String tempCloneInfo = "";
              // look for cacheid and clone info in the cookie or Rewritten URL
  
              // cmd 213330 start
              String extendedId = null;
              byte[] byteExtendedId = sessReq.getCookieValueAsBytes(SessionManagerConfig.dcookieName);
              if (byteExtendedId != null) {
                  extendedId = new String(byteExtendedId);
              } // cmd 213330 end
  
              if (extendedId == null) {
                  extendedId = getRequestedSessionIdFromURL(request);
                  if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_CORE.logp(Level.FINE, methodClassName, methodNames[ANALYZE_SSL_REQUEST], "getRequestedSessionId - encoded URL contains: "
                                                                                                                          + extendedId);
                  }
              }
  
              if (extendedId != null) {
                  tempCacheId = extendedId.substring(0, 4); // cacheid is always first
                  int index = extendedId.indexOf(SessionManagerConfig.getCloneSeparator());
                  if (index != -1) {
                      tempDummyId = extendedId.substring(4, index);
                      tempCloneInfo = extendedId.substring(index);
                  }
              }
              sessionId = tempCacheId + SessionAffinityContext.SSLSessionId + tempCloneInfo;
              allSessionIds = new ArrayList(1);
              allSessionIds.add(0, sessionId);
              sessionAffinityContext = new SessionAffinityContext(allSessionIds, reqFromCookie, reqFromURL, reqFromSSL);
              setNextId(sessionAffinityContext);
          }
          // Use SSL Sessionid NOT dummy id
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.logp(Level.FINE, methodClassName, methodNames[ANALYZE_SSL_REQUEST], "getRequestedSessionId - massaged long SSL id is now: " + sessionId);
          }
          // returns null if no SSL context
          return sessionAffinityContext;
      }