I have an interceptor that puts an object in the Session scope. The interceptor calls the following when retrieving the Session:
public String intercept(ActionInvocation invocation) throws Exception { ActionContext context = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) context.get(StrutsStatics.HTTP_REQUEST); HttpSession session = request.getSession(true /* create if need be */); session.setAttribute(attributeName, someObject); ... } Given that code, I don't see how the Session could be null after that interception --- otherwise an exception would be thrown at the point when I attempt to set the Session attribute. Yet, immediately after I start the server (therefore no Session has yet been created), if I issue a browser request on an action that uses that interceptor, OGNL reports the Session as being indeed null --- or so the xml-debug output of the context shows. It's only on the second request that the xml-debug shows a Session context containing the desired object. Is there a way of explaining this discrepancy? Apart from this custom interceptor, I use the paramPrepareParam stack. Would there be another interceptor in there interfering with my custom newly-created Session (but not interfering when the Session is not new anymore)? Toughts?