code: @Override
      public synchronized Object setAttribute(Object name, Object value, Boolean newIsListener) {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINER)) {
              StringBuffer sb = new StringBuffer("{").append(name).append(",");
              if (!SessionManagerConfig.isHideSessionValues()) {
                  sb.append(value).append(",");
              }
              sb.append(newIsListener).append("} ").append(appNameAndIdString);
              LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[SET_ATTRIBUTE], sb.toString());
          }
          Object oldValue = _attributes.put(name, value);
          Boolean oldIsListener = (Boolean) _attributeNames.put(name, newIsListener);
          _storeCallback.sessionAttributeSet(this, name, oldValue, oldIsListener, value, newIsListener);
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              if (!SessionManagerConfig.isHideSessionValues()) {
                  LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SET_ATTRIBUTE], oldValue);
              } else {
                  LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[SET_ATTRIBUTE]);
              }
          }
          return oldValue;
      }
docs: /*
  @see com.ibm.wsspi.session.ISession#setAttribute(java.lang.Object, java.lang.Object, java.lang.Boolean)