NullpointerException in MyFacesGenericPortlet after action-invocation ---------------------------------------------------------------------
Key: MYFACES-1150 URL: http://issues.apache.org/jira/browse/MYFACES-1150 Project: MyFaces Core Type: Bug Environment: XP / JBoss Portal 2.21RC2 / JDK5 Reporter: Martin Schmidt The problem is, that the sessionTimeout(...) detector method does not work properly, because there is always as session in this jboss context - and I think under many more application servers... This is the solution (as part of a subclass I made from MyFacesGenericPortlet: protected void facesRender(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException { if (log.isTraceEnabled()) log.trace("called facesRender"); setContentType(request, response); //////////////////////////////////////////////////// MODIFIED String viewId = request.getParameter(VIEW_ID); boolean nonFacesRequest = (viewId == null) || sessionTimedOut(request); request.getPortletSession(true).setAttribute(SESSION_LIVE_ATTR, Boolean.TRUE); /////// say we are alive if (nonFacesRequest) { //////////////////////////////////////////////////// setPortletRequestFlag(request); nonFacesRequest(request, response); return; } setPortletRequestFlag(request); try { ServletFacesContextImpl facesContext = (ServletFacesContextImpl) request.getPortletSession().getAttribute(CURRENT_FACES_CONTEXT); if (facesContext == null) { facesContext = (ServletFacesContextImpl) facesContext(request, response); request.getPortletSession().setAttribute(CURRENT_FACES_CONTEXT, facesContext); } // TODO: not sure if this can happen. Also double check this against // spec section 2.1.3 if (facesContext.getResponseComplete()) return; facesContext.setExternalContext(makeExternalContext(request, response)); lifecycle.render(facesContext); } catch (Throwable e) { handleExceptionFromLifecycle(e); } } protected boolean sessionTimedOut(PortletRequest request) { if (super.sessionTimedOut(request)) return true; Object flag = request.getPortletSession(false).getAttribute(SESSION_LIVE_ATTR); return flag == null; } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira