docs: @Override
      public boolean getSwappableListeners(short requestedListener) {
          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 (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  Tr.debug(this, tc, "loading data because we have listener match for " + requestedListener);
  
              rc = true;
              if (!populatedAppData) {
                  try {
                      getSessions().getIStore().setThreadContext();
                      getMultiRowAppData();
                  } finally {
                      getSessions().getIStore().unsetThreadContext();
                  }
              }
          }
          return rc;
      }