Exception after session expires
aleks77 Nov 9, 2007 3:06 PMI have a page where two AJAX requests are invoked simultaneously using two different jsFunctions. If the requests are invoked after the user's web session has expired, the following exception is produced on the server:
11:53:19,906 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception java.lang.NullPointerException at org.ajax4jsf.renderkit.HeaderResourcesRendererBase.getUrisSet(HeaderResourcesRendererBase.java:99) at org.ajax4jsf.renderkit.HeaderResourcesRendererBase.getHeaderScripts(HeaderResourcesRendererBase.java:52) at org.ajax4jsf.context.AjaxContextImpl.processHeadResources(AjaxContextImpl.java:442) at org.ajax4jsf.context.AjaxContextImpl.processHeadResources(AjaxContextImpl.java:459) at org.ajax4jsf.context.AjaxContextImpl.processHeadResources(AjaxContextImpl.java:459) at org.ajax4jsf.context.AjaxContextImpl.processHeadResources(AjaxContextImpl.java:459) at org.ajax4jsf.context.AjaxContextImpl.processHeadResources(AjaxContextImpl.java:459) at org.ajax4jsf.context.AjaxContextImpl.processHeadResources(AjaxContextImpl.java:366) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:245) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595)
I am using Rich Faces 3.1.2.GA. It seems to work fine when only a single AJAX request is sent after session expiration. This exception did not occur in version 3.0.1.