if (value==null) { removeAttribute(name); return; }
        public synchronized void setAttribute(String name, Object value)        {            if (_invalid) throw new IllegalStateException();            if (_values==null)                _values=newAttributeMap();            Object oldValue = _values.put(name,value);                        if (value==null || !value.equals(oldValue))            {                unbindValue(name, oldValue);                bindValue(name, value);                                if (_sessionAttributeListeners!=null)                {                    HttpSessionBindingEvent event =                        new HttpSessionBindingEvent(this,name,                                oldValue==null?value:oldValue);                    for(int i=0;i<LazyList.size(_sessionAttributeListeners);i++)                    {                        HttpSessionAttributeListener l = (HttpSessionAttributeListener)LazyList.get(_sessionAttributeListeners,i);                                                if (oldValue==null)                            l.attributeAdded(event);                        else if (value==null)                            l.attributeRemoved(event);                        else                            l.attributeReplaced(event);                    }                }            }        }