code: @Override
      public synchronized Object removeAttribute(Object name) {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINER)) {
              String s = name + appNameAndIdString;
              LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[REMOVE_ATTRIBUTE], s);
          }
          Object oldValue = _attributes.remove(name);
          Boolean oldIsBindingListener = (Boolean) _attributeNames.get(name);
          _attributeNames.remove(name);
          _storeCallback.sessionAttributeRemoved(this, name, oldValue, oldIsBindingListener);
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              if (!SessionManagerConfig.isHideSessionValues()) {
                  LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[REMOVE_ATTRIBUTE], oldValue);
              } else {
                  LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[REMOVE_ATTRIBUTE]);
              }
          }
          return oldValue;
      }
docs: /*
  @see com.ibm.wsspi.session.ISession#removeAttribute(java.lang.Object)