[weld-commits] Weld SVN: r5996 - in core/trunk/impl/src/main/java/org/jboss/weld: servlet and 1 other directory.
weld-commits at lists.jboss.org
weld-commits at lists.jboss.org
Thu Mar 4 03:34:38 EST 2010
Author: nickarls
Date: 2010-03-04 03:34:37 -0500 (Thu, 04 Mar 2010)
New Revision: 5996
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/context/ContextLifecycle.java
core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletLifecycle.java
Log:
Lifecycle changes for ending of request/session/conversation when invalidating session
Forced session creation (for HttpSessionManager null product prevention)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/context/ContextLifecycle.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/context/ContextLifecycle.java 2010-03-04 04:23:13 UTC (rev 5995)
+++ core/trunk/impl/src/main/java/org/jboss/weld/context/ContextLifecycle.java 2010-03-04 08:34:37 UTC (rev 5996)
@@ -22,7 +22,6 @@
*/
package org.jboss.weld.context;
-import static org.jboss.weld.jsf.JsfHelper.getServletContext;
import static org.jboss.weld.logging.Category.CONTEXT;
import static org.jboss.weld.logging.LoggerFactory.loggerFactory;
import static org.jboss.weld.logging.messages.ContextMessage.APPLICATION_ENDED;
@@ -31,10 +30,7 @@
import static org.jboss.weld.logging.messages.ContextMessage.REQUEST_STARTED;
import static org.jboss.weld.logging.messages.ContextMessage.SESSION_ENDED;
import static org.jboss.weld.logging.messages.ContextMessage.SESSION_RESTORED;
-import static org.jboss.weld.servlet.BeanProvider.conversationManager;
-import javax.faces.context.FacesContext;
-
import org.jboss.weld.bootstrap.api.Lifecycle;
import org.jboss.weld.bootstrap.api.Service;
import org.jboss.weld.context.api.BeanStore;
@@ -81,7 +77,6 @@
{
log.trace(SESSION_ENDED, id);
teardownContext(sessionContext);
- conversationManager(getServletContext(FacesContext.getCurrentInstance())).teardownContext();
}
public void beginRequest(String id, BeanStore requestBeanStore)
Modified: core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletLifecycle.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletLifecycle.java 2010-03-04 04:23:13 UTC (rev 5995)
+++ core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletLifecycle.java 2010-03-04 08:34:37 UTC (rev 5996)
@@ -22,10 +22,12 @@
*/
package org.jboss.weld.servlet;
+import static org.jboss.weld.jsf.JsfHelper.getServletContext;
import static org.jboss.weld.logging.messages.ServletMessage.REQUEST_SCOPE_BEAN_STORE_MISSING;
import static org.jboss.weld.servlet.BeanProvider.conversationManager;
import static org.jboss.weld.servlet.BeanProvider.httpSessionManager;
+import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
@@ -93,11 +95,9 @@
// at the end of the request.
beanStore.invalidate();
conversationManager.invalidateSession();
- conversationManager.destroyAllConversations();
}
else
{
- conversationManager.destroyAllConversations();
lifecycle.endSession(session.getId(), beanStore);
}
}
@@ -113,7 +113,6 @@
lifecycle.beginRequest("endSession-" + session.getId(), mockRequest);
BeanStore sessionBeanStore = restoreSessionContext(session);
- conversationManager.destroyAllConversations();
lifecycle.endSession(session.getId(), sessionBeanStore);
lifecycle.endRequest("endSession-" + session.getId(), mockRequest);
}
@@ -130,7 +129,7 @@
protected BeanStore restoreSessionContext(HttpServletRequest request)
{
HttpPassThruSessionBeanStore sessionBeanStore = new HttpPassThruOnDemandSessionBeanStore(request);
- HttpSession session = request.getSession(false);
+ HttpSession session = request.getSession(true);
lifecycle.restoreSession(session == null ? "Inactive session" : session.getId(), sessionBeanStore);
if (session != null)
{
@@ -174,6 +173,14 @@
{
if (request.getAttribute(REQUEST_ATTRIBUTE_NAME) != null)
{
+ HttpPassThruSessionBeanStore sessionBeanStore = (HttpPassThruSessionBeanStore) lifecycle.getSessionContext().getBeanStore();
+ if ((sessionBeanStore != null) && (sessionBeanStore.isInvalidated()))
+ {
+ conversationManager(request.getSession().getServletContext()).teardownContext();
+ lifecycle.endSession(request.getRequestedSessionId(), sessionBeanStore);
+ }
+ lifecycle.getSessionContext().setActive(false);
+ lifecycle.getSessionContext().setBeanStore(null);
BeanStore beanStore = (BeanStore) request.getAttribute(REQUEST_ATTRIBUTE_NAME);
if (beanStore == null)
{
@@ -181,13 +188,6 @@
}
lifecycle.endRequest(request.getRequestURI(), beanStore);
request.removeAttribute(REQUEST_ATTRIBUTE_NAME);
- HttpPassThruSessionBeanStore sessionBeanStore = (HttpPassThruSessionBeanStore) lifecycle.getSessionContext().getBeanStore();
- if ((sessionBeanStore != null) && (sessionBeanStore.isInvalidated()))
- {
- lifecycle.endSession(request.getRequestedSessionId(), sessionBeanStore);
- }
- lifecycle.getSessionContext().setActive(false);
- lifecycle.getSessionContext().setBeanStore(null);
}
}
More information about the weld-commits
mailing list