code: private void getMultiRowAppData() {
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_WAS.entering(methodClassName, methodNames[GET_MULTI_ROW_APP_DATA]);
          }
          populatedAppData = true;
          Map<Object, Object> swappable = getSwappableData();
          Hashtable props = (Hashtable) ((DatabaseHashMap) getSessions()).getAllValues(this);
          if (props != null) {
              Enumeration kys = props.keys();
              while (kys.hasMoreElements()) {
                  Object key = kys.nextElement();
                  swappable.put(key, props.get(key));
              }
              synchronized (_attributeNames) {
                  refillAttrNames(swappable);
              }
          }
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINER)) {
              LoggingUtil.SESSION_LOGGER_WAS.exiting(methodClassName, methodNames[GET_MULTI_ROW_APP_DATA]);
          }
      }
docs: /*
  getMultiRowAppData
  This method may or may not be called after db retrieval depending on whether we
  need to call listeners or get all attribute names. Therefore, we add to the
  existing swappable data rather than just calling setSwappable data.