code: @Override
      public synchronized ArrayList getListenerAttributeNames() {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[GET_LISTENER_ATTRIBUTE_NAMES], appNameAndIdString);
          }
          ArrayList arrayList = new ArrayList();
          synchronized (_attributeNames) {
              String attributeName = null;
              Iterator iterator = _attributeNames.keySet().iterator();
              while (iterator.hasNext()) {
                  attributeName = (String) iterator.next();
                  if (_attributeNames.get(attributeName).equals(Boolean.TRUE)) {
                      arrayList.add(attributeName);
                  }
              }
          }
  
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[GET_LISTENER_ATTRIBUTE_NAMES], arrayList);
          }
          return arrayList;
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.wsspi.session.ISession#getListenerAttributeNames()