code: public void addHttpSessionListener(ArrayList al, String j2eeName) {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[ADD_HTTP_SESSION_LISTENER], "addHttpSessionListener:" + al);
          }
          if (j2eeName != null) {
              addToJ2eeNameList(j2eeName, al.size(), mHttpSessionListenersJ2eeNames);
          }
          synchronized (mHttpSessionListeners) {
              mHttpSessionListeners.addAll(al);
              if (mHttpSessionListeners.size() > 0) {
                  sessionListener = true;
                  _coreHttpSessionManager.getIStore().setHttpSessionListener(true);
                  boolean mIBMSessionListenerImplemented = isIBMSessionListenerImplemented(al); // PQ81248
                  if (mIBMSessionListenerImplemented) {
                      wasHttpSessionObserver.setDoesContainIBMSessionListener(true);
                  }
              }
          }
  
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[ADD_HTTP_SESSION_LISTENER], "addHttpSessionListener:" + al);
          }
      }
docs: /*
  Adds a list of Session Listeners
  For shared session context or global sesions, we call
  this method to add each app's listeners.