code: public boolean getSwappableListeners(short requestedListener) {
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINER)) {
              LoggingUtil.SESSION_LOGGER_WAS.entering(methodClassName, methodNames[GET_SWAPPABLE_LISTENERS]);
          }
          short thisListenerFlag = getListenerFlag();
          boolean rc = false;
          // check session's listenrCnt to see if it has any of the type we want
          // input listener is either BINDING or ACTIVATION, so if the session has both, its a match
          if ((thisListenerFlag == requestedListener) || (thisListenerFlag == HTTP_SESSION_BINDING_AND_ACTIVATION_LISTENER)) {
              if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_SWAPPABLE_LISTENERS], "loading db data because we have listener match for "
                                                                                                                         + requestedListener);
              }
              rc = true;
              if (!populatedAppData) {
                  // PM00465: Set thread context class loader to CompoundClassLoader
                  try {
                      getSessions().getIStore().setThreadContext();
                      if (usingMultirow) {
                          getMultiRowAppData();
                      } else {
                          getSingleRowAppData();
                      }
                  } finally {
                      // PM00465: Unset thread context class loader to prior classloader
                      getSessions().getIStore().unsetThreadContext();
                  }
              }
          }
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINER)) {
              LoggingUtil.SESSION_LOGGER_WAS.exiting(methodClassName, methodNames[GET_SWAPPABLE_LISTENERS]);
          }
          return rc;
      }
docs: /*
  Get the swappable listeners
  Called to load session attributes if the session contains Activation or Binding listeners
  Note, we always load ALL attributes here since we can't tell which are listeners until they
  are loaded.