/*
Method removeAttribute

@see com.ibm.wsspi.session.ISession#removeAttribute(java.lang.Object)
962020
public Object removeAttribute(Object name) {
        if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
            LoggingUtil.SESSION_LOGGER_WAS.entering(methodClassName, methodNames[REMOVE_ATTRIBUTE], "name= " + name);
        }
        _attributes.remove(name);
        Object oldValue = removeValueGuts((String) name);
        Boolean oldIsBindingListener = (Boolean) _attributeNames.get(name);
        _attributeNames.remove(name);
        _storeCallback.sessionAttributeRemoved(this, name, oldValue, oldIsBindingListener);
        if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
            if (!SessionManagerConfig.isHideSessionValues()) {
                LoggingUtil.SESSION_LOGGER_WAS.exiting(methodClassName, methodNames[REMOVE_ATTRIBUTE], "oldAttributeValue =  " + oldValue);
            } else {
                LoggingUtil.SESSION_LOGGER_WAS.exiting(methodClassName, methodNames[REMOVE_ATTRIBUTE]);
            }
        }
        return oldValue;
    }
1288000
@Override
    public boolean removeAttribute(String name) {
        boolean result = true;
        // Send confirmation to client
        final SharedObjectEvent event = new SharedObjectEvent(Type.CLIENT_DELETE_DATA, name, null);
        if (ownerMessage.addEvent(event)) {
            if (super.removeAttribute(name)) {
                modified.set(true);
                syncEvents.add(event);
                deleteStats.incrementAndGet();
            } else {
                result = false;
            }
            notifyModified();
        }
        return result;
    }
1211762
public void removeSessionAttr(final String attrName) {
    final HttpSession sess = request.getSession(false);

    if (sess == null) {
      return;
    }

    sess.removeAttribute(attrName);
  }
1159139
public function removeAttribute($key) {
        if (is_array($key)) {
            foreach ($key as $k => $value) {
                if (!is_string($value)) throw new IllegalTypeException('Illegal type of parameter $key['.$k.']: '.gettype($value));
                unset($_SESSION[$value]);
            }
            return;
        }

        if (!is_string($key)) throw new IllegalTypeException('Illegal type of parameter $key: '.gettype($key));
        unset($_SESSION[$key]);
    }
800114
public void sessionAttributeAccessed(ISession session, Object name, Object value) {
        _sessionStateEventDispatcher.sessionAttributeAccessed(session, name, value);

    }
1081555
public Attribute removeAttributeByFullName(CharSequence name) {
		for (Iterator<Attribute> it = event.attributes.iterator(); it.hasNext(); ) {
			Attribute attr = it.next();
			if (attr.text.equals(name)) {
				it.remove();
				return attr;
			}
		}
		return null;
	}
780685
public void remove(final boolean removeFromSession) {
        if (removeFromSession) {
            this.sessionStore.set(this.context, Pac4jConstants.USER_PROFILES, new LinkedHashMap<String, U>());
        }
        this.context.setRequestAttribute(Pac4jConstants.USER_PROFILES, new LinkedHashMap<String, U>());
    }
330992
public void removeAttribute (int index)
    {
    if (index >= 0 && index < length) {
        if (index < length - 1) {
        System.arraycopy(data, (index+1)*5, data, index*5,
                 (length-index-1)*5);
        }
        index = (length - 1) * 5;
        data [index++] = null;
        data [index++] = null;
        data [index++] = null;
        data [index++] = null;
        data [index] = null;
        length--;
    } else {
        badIndex(index);
    }
    }
1266466
public final void removeSession (final Session sessionReq) throws NoSuchSessionException {

        final Session session = sessions.get(sessionReq.getTargetName());

        if (session != null) {
            sessions.remove(sessionReq.getTargetName());
        } else {
            throw new NoSuchSessionException("Session " + sessionReq.getTargetName() + " not found!");
        }
    }
304401
public void setAttribute(String key, Object attribute) {

		if (!isValid())
			throw new IllegalStateException(
					"Can not bind object to session that has been invalidated!!");

		if (key == null)
			throw new NullPointerException(
					"Name of attribute to bind cant be null!!!");
		if (attribute == null)
			throw new NullPointerException(
					"Attribute that is to be bound cant be null!!!");

		// Construct an event with the new value
		SipApplicationSessionBindingEvent event = null;

        // Call the valueBound() method if necessary
        if (attribute instanceof SipApplicationSessionBindingListener) {
            // Don't call any notification if replacing with the same value
            Object oldValue = getAttributeMap().get(key);
            if (attribute != oldValue) {
            	event = new SipApplicationSessionBindingEvent(this, key);
                try {
                    ((SipApplicationSessionBindingListener) attribute).valueBound(event);
                } catch (Throwable t){
                	logger.error("SipSessionBindingListener threw exception", t);
                }
            }
        }

		Object previousValue = this.getAttributeMap().put(key, attribute);

		if (previousValue != null && previousValue != attribute &&
	            previousValue instanceof SipApplicationSessionBindingListener) {
            try {
                ((SipApplicationSessionBindingListener) previousValue).valueUnbound
                    (new SipApplicationSessionBindingEvent(this, key));
            } catch (Throwable t) {
            	logger.error("SipSessionBindingListener threw exception", t);
            }
        }

		SipListeners listeners = sipContext.getListeners();
		List<SipApplicationSessionAttributeListener> listenersList = listeners.getSipApplicationSessionAttributeListeners();
		if(listenersList.size() > 0) {
			if(event == null) {
				event = new SipApplicationSessionBindingEvent(this, key);
			}
			if (previousValue == null) {
				for (SipApplicationSessionAttributeListener listener : listenersList) {
					if(logger.isDebugEnabled()) {
						logger.debug("notifying SipApplicationSessionAttributeListener " + listener.getClass().getCanonicalName() + " of attribute added on key "+ key);
					}
					try {
						listener.attributeAdded(event);
					} catch (Throwable t) {
						logger.error("SipApplicationSessionAttributeListener threw exception", t);
					}
				}
			} else {
				for (SipApplicationSessionAttributeListener listener : listenersList) {
					if(logger.isDebugEnabled()) {
						logger.debug("notifying SipApplicationSessionAttributeListener " + listener.getClass().getCanonicalName() + " of attribute replaced on key "+ key);
					}
					try {
						listener.attributeReplaced(event);
					} catch (Throwable t) {
						logger.error("SipApplicationSessionAttributeListener threw exception", t);
					}
				}
			}
		}
	}
182615
@Override
    public List<Object> removeAttribute(final String name) {
        List<Object> removedValues = null;

        for (final IAdditionalDescriptors additionalDescriptors : this.delegateDescriptors) {
            final List<Object> values = additionalDescriptors.removeAttribute(name);
            if (values != null) {
                if (removedValues == null) {
                    removedValues = new ArrayList<>(values);
                } else {
                    removedValues.addAll(values);
                }
            }
        }

        return removedValues;
    }
1083476
public void removeAttribute (int index)
    {
    int origMax = getLength () - 1;

    super.removeAttribute (index);
    if (index != origMax) {
        System.arraycopy (declared, index + 1, declared, index,
            origMax - index);
        System.arraycopy (specified, index + 1, specified, index,
            origMax - index);
    }
    }
180432
public void delete(String name) throws IOException {
        if (name.equalsIgnoreCase(MAP)) {
            maps = null;
        } else {
          throw new IOException("Attribute name not recognized by " +
                        "CertAttrSet:PolicyMappingsExtension.");
        }
        encodeThis();
    }
391986
def removeAttribute(self, attrName):
        '''
            

        '''
        attrName = attrName.lower()

        # Delete provided attribute name ( #attrName ) from attributes map
        try:
            del self._attributes[attrName]
        except KeyError:
            pass
576334
public void removeAttributeValue(String attributeName, int index) {

        if (m_simpleAttributes.containsKey(attributeName)) {
            List<String> values = m_simpleAttributes.get(attributeName);
            if ((values.size() == 1) && (index == 0)) {
                removeAttributeSilent(attributeName);
            } else {
                values.remove(index);
            }
        } else if (m_entityAttributes.containsKey(attributeName)) {
            List<CmsEntity> values = m_entityAttributes.get(attributeName);
            if ((values.size() == 1) && (index == 0)) {
                removeAttributeSilent(attributeName);
            } else {
                CmsEntity child = values.remove(index);
                removeChildChangeHandler(child);
            }
        }
        fireChange();
    }
1097831
public Controller removeSessionAttr(String key) {
		HttpSession session = request.getSession(false);
		if (session != null)
			session.removeAttribute(key);
		return this;
	}
494277
@Override
    public void attributeRemoved(HttpSessionBindingEvent hse) {
        Object possibleClient = hse.getValue();
        closeClient(possibleClient);
    }