Search in sources :

Example 21 with HttpSessionBindingListener

use of javax.servlet.http.HttpSessionBindingListener in project cxf by apache.

the class NettyHttpSession method removeAttribute.

@Override
public void removeAttribute(String name) {
    if (attributes != null) {
        Object value = attributes.get(name);
        if (value instanceof HttpSessionBindingListener) {
            ((HttpSessionBindingListener) value).valueUnbound(new HttpSessionBindingEvent(this, name, value));
        }
        attributes.remove(name);
    }
}
Also used : HttpSessionBindingEvent(javax.servlet.http.HttpSessionBindingEvent) HttpSessionBindingListener(javax.servlet.http.HttpSessionBindingListener)

Example 22 with HttpSessionBindingListener

use of javax.servlet.http.HttpSessionBindingListener in project tomcat70 by apache.

the class StandardSessionContext method removeAttributeInternal.

/**
 * Remove the object bound with the specified name from this session.  If
 * the session does not have an object bound with this name, this method
 * does nothing.
 * <p>
 * After this method executes, and if the object implements
 * <code>HttpSessionBindingListener</code>, the container calls
 * <code>valueUnbound()</code> on the object.
 *
 * @param name Name of the object to remove from this session.
 * @param notify Should we notify interested listeners that this
 *  attribute is being removed?
 */
protected void removeAttributeInternal(String name, boolean notify) {
    // Avoid NPE
    if (name == null)
        return;
    // Remove this attribute from our collection
    Object value = attributes.remove(name);
    // Do we need to do valueUnbound() and attributeRemoved() notification?
    if (!notify || (value == null)) {
        return;
    }
    // Call the valueUnbound() method if necessary
    HttpSessionBindingEvent event = null;
    if (value instanceof HttpSessionBindingListener) {
        event = new HttpSessionBindingEvent(getSession(), name, value);
        ((HttpSessionBindingListener) value).valueUnbound(event);
    }
    // Notify interested application event listeners
    Context context = (Context) manager.getContainer();
    Object[] listeners = context.getApplicationEventListeners();
    if (listeners == null)
        return;
    for (int i = 0; i < listeners.length; i++) {
        if (!(listeners[i] instanceof HttpSessionAttributeListener))
            continue;
        HttpSessionAttributeListener listener = (HttpSessionAttributeListener) listeners[i];
        try {
            context.fireContainerEvent("beforeSessionAttributeRemoved", listener);
            if (event == null) {
                event = new HttpSessionBindingEvent(getSession(), name, value);
            }
            listener.attributeRemoved(event);
            context.fireContainerEvent("afterSessionAttributeRemoved", listener);
        } catch (Throwable t) {
            ExceptionUtils.handleThrowable(t);
            try {
                context.fireContainerEvent("afterSessionAttributeRemoved", listener);
            } catch (Exception e) {
            // Ignore
            }
            manager.getContainer().getLogger().error(sm.getString("standardSession.attributeEvent"), t);
        }
    }
}
Also used : HttpSessionBindingEvent(javax.servlet.http.HttpSessionBindingEvent) Context(org.apache.catalina.Context) ServletContext(javax.servlet.ServletContext) StandardContext(org.apache.catalina.core.StandardContext) HttpSessionBindingListener(javax.servlet.http.HttpSessionBindingListener) HttpSessionAttributeListener(javax.servlet.http.HttpSessionAttributeListener) IOException(java.io.IOException) NotSerializableException(java.io.NotSerializableException) WriteAbortedException(java.io.WriteAbortedException)

Example 23 with HttpSessionBindingListener

use of javax.servlet.http.HttpSessionBindingListener in project undertow by undertow-io.

the class SessionListenerBridge method attributeAdded.

@Override
public void attributeAdded(final Session session, final String name, final Object value) {
    if (name.startsWith(IO_UNDERTOW)) {
        return;
    }
    final HttpSessionImpl httpSession = SecurityActions.forSession(session, servletContext, false);
    applicationListeners.httpSessionAttributeAdded(httpSession, name, value);
    if (value instanceof HttpSessionBindingListener) {
        ((HttpSessionBindingListener) value).valueBound(new HttpSessionBindingEvent(httpSession, name, value));
    }
}
Also used : HttpSessionBindingEvent(javax.servlet.http.HttpSessionBindingEvent) HttpSessionImpl(io.undertow.servlet.spec.HttpSessionImpl) HttpSessionBindingListener(javax.servlet.http.HttpSessionBindingListener)

Example 24 with HttpSessionBindingListener

use of javax.servlet.http.HttpSessionBindingListener in project gocd by gocd.

the class MockHttpSession method serializeState.

/**
 * Serialize the attributes of this session into an object that can be
 * turned into a byte array with standard Java serialization.
 * @return a representation of this session's serialized state
 */
public Serializable serializeState() {
    HashMap<String, Serializable> state = new HashMap<>();
    for (Iterator<Map.Entry<String, Object>> it = this.attributes.entrySet().iterator(); it.hasNext(); ) {
        Map.Entry<String, Object> entry = it.next();
        String name = entry.getKey();
        Object value = entry.getValue();
        it.remove();
        if (value instanceof Serializable) {
            state.put(name, (Serializable) value);
        } else {
            // unbind the attribute in this case.
            if (value instanceof HttpSessionBindingListener) {
                ((HttpSessionBindingListener) value).valueUnbound(new HttpSessionBindingEvent(this, name, value));
            }
        }
    }
    return state;
}
Also used : HttpSessionBindingEvent(javax.servlet.http.HttpSessionBindingEvent) Serializable(java.io.Serializable) HttpSessionBindingListener(javax.servlet.http.HttpSessionBindingListener)

Aggregations

HttpSessionBindingEvent (javax.servlet.http.HttpSessionBindingEvent)24 HttpSessionBindingListener (javax.servlet.http.HttpSessionBindingListener)24 IOException (java.io.IOException)5 NotSerializableException (java.io.NotSerializableException)4 WriteAbortedException (java.io.WriteAbortedException)4 ServletContext (javax.servlet.ServletContext)4 HttpSessionAttributeListener (javax.servlet.http.HttpSessionAttributeListener)4 Context (org.apache.catalina.Context)4 Serializable (java.io.Serializable)3 HashMap (java.util.HashMap)2 LinkedHashMap (java.util.LinkedHashMap)2 Map (java.util.Map)2 StandardContext (org.apache.catalina.core.StandardContext)2 HttpSessionImpl (io.undertow.servlet.spec.HttpSessionImpl)1 Locale (java.util.Locale)1 ServletException (javax.servlet.ServletException)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 HttpSession (javax.servlet.http.HttpSession)1 ISessionListener (org.polymap.core.runtime.session.ISessionListener)1 SessionContext (org.polymap.core.runtime.session.SessionContext)1