You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by bansi <ma...@yahoo.com> on 2008/07/18 00:02:25 UTC

Session timeout results in javax.faces.application.ViewExpiredException

I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as suggested
by Cagatay Civici in one of his articles i.e.
http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/

If the session times out, JSF throws a ViewExpiredException during the
RESTORE_VIEW phase. 


Here is the snippet from my LoginPhaseListener. The exception is thrown from
afterPhase method

 /**
     * After phase.
     * 
     * @param pe
     *            the pe
     * @see
javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
     */
    public void afterPhase(final PhaseEvent pe)
    {
        final FacesContext facesContext = pe.getFacesContext();
        final String viewId =
pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
        if (viewId.endsWith("login.xhtml"))
        {
            final String managedBeanName =
getManagedBeanNameFromView(viewId);
            final Object object =
facesContext.getApplication().createValueBinding("#{" + managedBeanName +
"}")
                    .getValue(facesContext);
            if (object == null)
            {
                logger.error("OnPageLoad cannot be executed, no such managed
bean:" + managedBeanName);
            } else
            {
                final Login loginBean = (Login) object;
                loginBean.onPageLoad();
            }
        } else
        {
            final String managedBeanName =
getManagedBeanNameFromView(viewId);
            final String BackingBeanName = managedBeanName.substring(0,
1).toUpperCase()
                    + managedBeanName.substring(1,
managedBeanName.length());
                   }
    }


 /**
     * Gets the managed bean name from view.
     * 
     * @param viewId
     *            the view id
     * @return the managed bean name from view
     */
    public String getManagedBeanNameFromView(final String viewId)
    {
        String pageName;
        if (viewId.endsWith("login.xhtml"))
        {
            pageName = viewId.substring(1, viewId.length() - 6);
        } else
        {
            pageName = viewId.substring(1, viewId.length() - 10);
        }
        return pageName + "Bean";
    }

Here is the stack trace

2008-07-15 10:31:12,192 ERROR
[org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
PhaseListener RESTORE_VIEW(1) afterPhase>
java.lang.NullPointerException
	at
com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
	at
org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
	at
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
exception occurred>
javax.faces.application.ViewExpiredException: /deviceForm.facesThe expected
view was not returned for the view identifier: /deviceForm.faces
	at
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
	at
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
exception occurred>
javax.faces.application.ViewExpiredException: /deviceForm.facesThe expected
view was not returned for the view identifier: /deviceForm.faces
	at
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
	at
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
2008-07-15 10:31:12,348 WARN
[org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
special javascript could not be retrieved from request-map.>

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18518805.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
the following code snippet in web.xml

<error-page>
    
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
    	<location>/sessionTimeout.jsp</location>
    </error-page>



It doesnt work meaning it doesnt render sessionTimeout.jsp infact throws up
the stack Trace on the browser

I am using Tomcat 5.6, JSF 1.2(MyFaces 1.2.2), facelets 1.1.13 

Martin Marinschek wrote:
> 
> Hi,
> 
> you should probably write a filter or a phase-listener to deal with
> session-timeouts appropriately.
> 
> regards,
> 
> Martin
> 
> On Fri, Jul 18, 2008 at 7:01 PM, bansi <ma...@yahoo.com> wrote:
> 
>>
>> Hi Martin
>> Thanks for sharing your thoughts. My web.xml doesnt have any
>> configuration
>> related to session timeout so i guess its uses default timeout. A code
>> snippet on how to do a post-back will be greatly appreciated
>>
>>
>> Martin Marinschek wrote:
>> >
>> > Hi,
>> >
>> > yes, I would dare to say this is expected behaviour, if you do a
>> > post-back (if you execute a get-link, then this shouldn't happen). In
>> > your web-application, you will need to cover the case of a timed-out
>> > session appropriately.
>> >
>> > regards,
>> >
>> > Martin
>> >
>> > On 7/18/08, bansi <ma...@yahoo.com> wrote:
>> >>
>> >> I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>> >> suggested
>> >> by Cagatay Civici in one of his articles i.e.
>> >>
>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>> >>
>> >> If the session times out, JSF throws a ViewExpiredException during the
>> >> RESTORE_VIEW phase.
>> >>
>> >>
>> >> Here is the snippet from my LoginPhaseListener. The exception is
>> thrown
>> >> from
>> >> afterPhase method
>> >>
>> >>  /**
>> >>      * After phase.
>> >>      *
>> >>      * @param pe
>> >>      *            the pe
>> >>      * @see
>> >>
>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>> >>      */
>> >>     public void afterPhase(final PhaseEvent pe)
>> >>     {
>> >>         final FacesContext facesContext = pe.getFacesContext();
>> >>         final String viewId =
>> >> pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>> >>         if (viewId.endsWith("login.xhtml"))
>> >>         {
>> >>             final String managedBeanName =
>> >> getManagedBeanNameFromView(viewId);
>> >>             final Object object =
>> >> facesContext.getApplication().createValueBinding("#{" +
>> managedBeanName
>> +
>> >> "}")
>> >>                     .getValue(facesContext);
>> >>             if (object == null)
>> >>             {
>> >>                 logger.error("OnPageLoad cannot be executed, no such
>> >> managed
>> >> bean:" + managedBeanName);
>> >>             } else
>> >>             {
>> >>                 final Login loginBean = (Login) object;
>> >>                 loginBean.onPageLoad();
>> >>             }
>> >>         } else
>> >>         {
>> >>             final String managedBeanName =
>> >> getManagedBeanNameFromView(viewId);
>> >>             final String BackingBeanName =
>> managedBeanName.substring(0,
>> >> 1).toUpperCase()
>> >>                     + managedBeanName.substring(1,
>> >> managedBeanName.length());
>> >>                    }
>> >>     }
>> >>
>> >>
>> >>  /**
>> >>      * Gets the managed bean name from view.
>> >>      *
>> >>      * @param viewId
>> >>      *            the view id
>> >>      * @return the managed bean name from view
>> >>      */
>> >>     public String getManagedBeanNameFromView(final String viewId)
>> >>     {
>> >>         String pageName;
>> >>         if (viewId.endsWith("login.xhtml"))
>> >>         {
>> >>             pageName = viewId.substring(1, viewId.length() - 6);
>> >>         } else
>> >>         {
>> >>             pageName = viewId.substring(1, viewId.length() - 10);
>> >>         }
>> >>         return pageName + "Bean";
>> >>     }
>> >>
>> >> Here is the stack trace
>> >>
>> >> 2008-07-15 10:31:12,192 ERROR
>> >> [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>> >> PhaseListener RESTORE_VIEW(1) afterPhase>
>> >> java.lang.NullPointerException
>> >>      at
>> >>
>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >>      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >>      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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >>      at
>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >>      at
>> >>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >>      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >>      at
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >>      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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >>      at
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >>      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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >>      at
>> >>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >>      at java.lang.Thread.run(Thread.java:595)
>> >> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>> <An
>> >> exception occurred>
>> >> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> >> expected
>> >> view was not returned for the view identifier: /deviceForm.faces
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >>      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >>      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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >>      at
>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >>      at
>> >>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >>      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >>      at
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >>      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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >>      at
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >>      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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >>      at
>> >>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >>      at java.lang.Thread.run(Thread.java:595)
>> >> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>> <An
>> >> exception occurred>
>> >> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> >> expected
>> >> view was not returned for the view identifier: /deviceForm.faces
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> >>      at
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >>      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >>      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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >>      at
>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >>      at
>> >>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >>      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >>      at
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>      at
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>      at
>> >>
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >>      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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >>      at
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >>      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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >>      at
>> >>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >>      at java.lang.Thread.run(Thread.java:595)
>> >> 2008-07-15 10:31:12,348 WARN
>> >> [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
>> >> special javascript could not be retrieved from request-map.>
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18518805.html
>> >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>> > --
>> >
>> > http://www.irian.at
>> >
>> > Your JSF powerhouse -
>> > JSF Consulting, Development and
>> > Courses in English and German
>> >
>> > Professional Support for Apache MyFaces
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18533647.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> 
> http://www.irian.at
> 
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
> 
> Professional Support for Apache MyFaces
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18537083.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Martin Marinschek <ma...@gmail.com>.
Hi,

you should probably write a filter or a phase-listener to deal with
session-timeouts appropriately.

regards,

Martin

On Fri, Jul 18, 2008 at 7:01 PM, bansi <ma...@yahoo.com> wrote:

>
> Hi Martin
> Thanks for sharing your thoughts. My web.xml doesnt have any configuration
> related to session timeout so i guess its uses default timeout. A code
> snippet on how to do a post-back will be greatly appreciated
>
>
> Martin Marinschek wrote:
> >
> > Hi,
> >
> > yes, I would dare to say this is expected behaviour, if you do a
> > post-back (if you execute a get-link, then this shouldn't happen). In
> > your web-application, you will need to cover the case of a timed-out
> > session appropriately.
> >
> > regards,
> >
> > Martin
> >
> > On 7/18/08, bansi <ma...@yahoo.com> wrote:
> >>
> >> I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
> >> suggested
> >> by Cagatay Civici in one of his articles i.e.
> >>
> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
> >>
> >> If the session times out, JSF throws a ViewExpiredException during the
> >> RESTORE_VIEW phase.
> >>
> >>
> >> Here is the snippet from my LoginPhaseListener. The exception is thrown
> >> from
> >> afterPhase method
> >>
> >>  /**
> >>      * After phase.
> >>      *
> >>      * @param pe
> >>      *            the pe
> >>      * @see
> >> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
> >>      */
> >>     public void afterPhase(final PhaseEvent pe)
> >>     {
> >>         final FacesContext facesContext = pe.getFacesContext();
> >>         final String viewId =
> >> pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
> >>         if (viewId.endsWith("login.xhtml"))
> >>         {
> >>             final String managedBeanName =
> >> getManagedBeanNameFromView(viewId);
> >>             final Object object =
> >> facesContext.getApplication().createValueBinding("#{" + managedBeanName
> +
> >> "}")
> >>                     .getValue(facesContext);
> >>             if (object == null)
> >>             {
> >>                 logger.error("OnPageLoad cannot be executed, no such
> >> managed
> >> bean:" + managedBeanName);
> >>             } else
> >>             {
> >>                 final Login loginBean = (Login) object;
> >>                 loginBean.onPageLoad();
> >>             }
> >>         } else
> >>         {
> >>             final String managedBeanName =
> >> getManagedBeanNameFromView(viewId);
> >>             final String BackingBeanName = managedBeanName.substring(0,
> >> 1).toUpperCase()
> >>                     + managedBeanName.substring(1,
> >> managedBeanName.length());
> >>                    }
> >>     }
> >>
> >>
> >>  /**
> >>      * Gets the managed bean name from view.
> >>      *
> >>      * @param viewId
> >>      *            the view id
> >>      * @return the managed bean name from view
> >>      */
> >>     public String getManagedBeanNameFromView(final String viewId)
> >>     {
> >>         String pageName;
> >>         if (viewId.endsWith("login.xhtml"))
> >>         {
> >>             pageName = viewId.substring(1, viewId.length() - 6);
> >>         } else
> >>         {
> >>             pageName = viewId.substring(1, viewId.length() - 10);
> >>         }
> >>         return pageName + "Bean";
> >>     }
> >>
> >> Here is the stack trace
> >>
> >> 2008-07-15 10:31:12,192 ERROR
> >> [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
> >> PhaseListener RESTORE_VIEW(1) afterPhase>
> >> java.lang.NullPointerException
> >>      at
> >>
> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
> >>      at
> >>
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
> >>      at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
> >>      at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >>      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >>      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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >>      at
> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >>      at
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >>      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >>      at
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >>      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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >>      at
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >>      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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >>      at
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >>      at java.lang.Thread.run(Thread.java:595)
> >> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
> <An
> >> exception occurred>
> >> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> >> expected
> >> view was not returned for the view identifier: /deviceForm.faces
> >>      at
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >>      at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >>      at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >>      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >>      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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >>      at
> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >>      at
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >>      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >>      at
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >>      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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >>      at
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >>      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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >>      at
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >>      at java.lang.Thread.run(Thread.java:595)
> >> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
> <An
> >> exception occurred>
> >> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> >> expected
> >> view was not returned for the view identifier: /deviceForm.faces
> >>      at
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >>      at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >>      at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >>      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >>      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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >>      at
> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >>      at
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >>      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >>      at
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>      at
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>      at
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >>      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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >>      at
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >>      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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >>      at
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >>      at java.lang.Thread.run(Thread.java:595)
> >> 2008-07-15 10:31:12,348 WARN
> >> [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
> >> special javascript could not be retrieved from request-map.>
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18518805.html
> >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
> >>
> >>
> >
> >
> > --
> >
> > http://www.irian.at
> >
> > Your JSF powerhouse -
> > JSF Consulting, Development and
> > Courses in English and German
> >
> > Professional Support for Apache MyFaces
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18533647.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>


-- 

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
Hi Martin
Thanks for sharing your thoughts. My web.xml doesnt have any configuration
related to session timeout so i guess its uses default timeout. A code
snippet on how to do a post-back will be greatly appreciated


Martin Marinschek wrote:
> 
> Hi,
> 
> yes, I would dare to say this is expected behaviour, if you do a
> post-back (if you execute a get-link, then this shouldn't happen). In
> your web-application, you will need to cover the case of a timed-out
> session appropriately.
> 
> regards,
> 
> Martin
> 
> On 7/18/08, bansi <ma...@yahoo.com> wrote:
>>
>> I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>> suggested
>> by Cagatay Civici in one of his articles i.e.
>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>
>> If the session times out, JSF throws a ViewExpiredException during the
>> RESTORE_VIEW phase.
>>
>>
>> Here is the snippet from my LoginPhaseListener. The exception is thrown
>> from
>> afterPhase method
>>
>>  /**
>>      * After phase.
>>      *
>>      * @param pe
>>      *            the pe
>>      * @see
>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>      */
>>     public void afterPhase(final PhaseEvent pe)
>>     {
>>         final FacesContext facesContext = pe.getFacesContext();
>>         final String viewId =
>> pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>>         if (viewId.endsWith("login.xhtml"))
>>         {
>>             final String managedBeanName =
>> getManagedBeanNameFromView(viewId);
>>             final Object object =
>> facesContext.getApplication().createValueBinding("#{" + managedBeanName +
>> "}")
>>                     .getValue(facesContext);
>>             if (object == null)
>>             {
>>                 logger.error("OnPageLoad cannot be executed, no such
>> managed
>> bean:" + managedBeanName);
>>             } else
>>             {
>>                 final Login loginBean = (Login) object;
>>                 loginBean.onPageLoad();
>>             }
>>         } else
>>         {
>>             final String managedBeanName =
>> getManagedBeanNameFromView(viewId);
>>             final String BackingBeanName = managedBeanName.substring(0,
>> 1).toUpperCase()
>>                     + managedBeanName.substring(1,
>> managedBeanName.length());
>>                    }
>>     }
>>
>>
>>  /**
>>      * Gets the managed bean name from view.
>>      *
>>      * @param viewId
>>      *            the view id
>>      * @return the managed bean name from view
>>      */
>>     public String getManagedBeanNameFromView(final String viewId)
>>     {
>>         String pageName;
>>         if (viewId.endsWith("login.xhtml"))
>>         {
>>             pageName = viewId.substring(1, viewId.length() - 6);
>>         } else
>>         {
>>             pageName = viewId.substring(1, viewId.length() - 10);
>>         }
>>         return pageName + "Bean";
>>     }
>>
>> Here is the stack trace
>>
>> 2008-07-15 10:31:12,192 ERROR
>> [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>> PhaseListener RESTORE_VIEW(1) afterPhase>
>> java.lang.NullPointerException
>> 	at
>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>> 	at
>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>> 	at
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>> 	at
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> 	at
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> 	at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> 	at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> 	at
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> 	at java.lang.Thread.run(Thread.java:595)
>> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
>> exception occurred>
>> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> expected
>> view was not returned for the view identifier: /deviceForm.faces
>> 	at
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> 	at
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> 	at
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> 	at
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> 	at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> 	at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> 	at
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> 	at java.lang.Thread.run(Thread.java:595)
>> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
>> exception occurred>
>> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> expected
>> view was not returned for the view identifier: /deviceForm.faces
>> 	at
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> 	at
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> 	at
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> 	at
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> 	at
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> 	at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> 	at
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> 	at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> 	at
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> 	at java.lang.Thread.run(Thread.java:595)
>> 2008-07-15 10:31:12,348 WARN
>> [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
>> special javascript could not be retrieved from request-map.>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18518805.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> 
> http://www.irian.at
> 
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
> 
> Professional Support for Apache MyFaces
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18533647.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Martin Marinschek <ma...@gmail.com>.
Hi,

yes, I would dare to say this is expected behaviour, if you do a
post-back (if you execute a get-link, then this shouldn't happen). In
your web-application, you will need to cover the case of a timed-out
session appropriately.

regards,

Martin

On 7/18/08, bansi <ma...@yahoo.com> wrote:
>
> I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as suggested
> by Cagatay Civici in one of his articles i.e.
> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>
> If the session times out, JSF throws a ViewExpiredException during the
> RESTORE_VIEW phase.
>
>
> Here is the snippet from my LoginPhaseListener. The exception is thrown from
> afterPhase method
>
>  /**
>      * After phase.
>      *
>      * @param pe
>      *            the pe
>      * @see
> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>      */
>     public void afterPhase(final PhaseEvent pe)
>     {
>         final FacesContext facesContext = pe.getFacesContext();
>         final String viewId =
> pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>         if (viewId.endsWith("login.xhtml"))
>         {
>             final String managedBeanName =
> getManagedBeanNameFromView(viewId);
>             final Object object =
> facesContext.getApplication().createValueBinding("#{" + managedBeanName +
> "}")
>                     .getValue(facesContext);
>             if (object == null)
>             {
>                 logger.error("OnPageLoad cannot be executed, no such managed
> bean:" + managedBeanName);
>             } else
>             {
>                 final Login loginBean = (Login) object;
>                 loginBean.onPageLoad();
>             }
>         } else
>         {
>             final String managedBeanName =
> getManagedBeanNameFromView(viewId);
>             final String BackingBeanName = managedBeanName.substring(0,
> 1).toUpperCase()
>                     + managedBeanName.substring(1,
> managedBeanName.length());
>                    }
>     }
>
>
>  /**
>      * Gets the managed bean name from view.
>      *
>      * @param viewId
>      *            the view id
>      * @return the managed bean name from view
>      */
>     public String getManagedBeanNameFromView(final String viewId)
>     {
>         String pageName;
>         if (viewId.endsWith("login.xhtml"))
>         {
>             pageName = viewId.substring(1, viewId.length() - 6);
>         } else
>         {
>             pageName = viewId.substring(1, viewId.length() - 10);
>         }
>         return pageName + "Bean";
>     }
>
> Here is the stack trace
>
> 2008-07-15 10:31:12,192 ERROR
> [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
> PhaseListener RESTORE_VIEW(1) afterPhase>
> java.lang.NullPointerException
> 	at
> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
> 	at
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> 	at
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> 	at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> exception occurred>
> javax.faces.application.ViewExpiredException: /deviceForm.facesThe expected
> view was not returned for the view identifier: /deviceForm.faces
> 	at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> 	at
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> 	at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> exception occurred>
> javax.faces.application.ViewExpiredException: /deviceForm.facesThe expected
> view was not returned for the view identifier: /deviceForm.faces
> 	at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> 	at
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> 	at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> 2008-07-15 10:31:12,348 WARN
> [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
> special javascript could not be retrieved from request-map.>
>
> --
> View this message in context:
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18518805.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>


-- 

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Zigc Junk <zi...@gmail.com>.
I guess you authenticate the user somehow. At the end of you
authentication, you can put some object, say the string
"JUST_AUTHENTICATE" in the session. Then, in your phase listener, you
retrieve and remove that attribute from session. If you retrieved
non-null, you know it is right after the user login. Then you redirect
to the home page. Of course you can use any object that was created
right after a login as the indicator.

regard

Bill

On Mon, Jul 28, 2008 at 11:21 PM, bansi <ma...@yahoo.com> wrote:
>
> Hi Bill,
> Thanks for your response.  I didnt understood what do you mean by
> "you should check if it is right after a new login. "
> Could you please tell me what to check if it is right.
> Also the session times out after 30 mins no matter what i.e. even though
> their is no Inactivity
>
>
>
> Zigc Junk wrote:
>>
>> In the beforePhase method of your restore_view phase listener, you
>> should check if it is right after a new login. If yes, redirect to the
>> home page. This should suppress the ViewExpiredException.
>>
>> regards
>>
>> Bill
>>
>> On Fri, Jul 25, 2008 at 3:16 PM, bansi <ma...@yahoo.com> wrote:
>>>
>>> Thats perfect. But how do i prevent it from generating
>>> ViewExpiredException
>>> or in other words how do i handle ViewExpiredException as i still see it
>>> in
>>> the Log file
>>> I tried the following snippet in web.xml but it doesnt work
>>> <error-page>
>>>
>>> <exception-type>javax.faces.application.ViewExpiredException</exception-type>
>>>    <location>/user/timeout.jsp</location>
>>>  </error-page>
>>> Is it due to RichFaces version 3.1 or Myfaces 1.2.2 or Tomcat 5.5
>>>
>>>
>>> Zigc Junk wrote:
>>>>
>>>> That message never get rendered because redirect will create a new
>>>> instance of FacesContext.
>>>>
>>>> Bill
>>>>
>>>> On Fri, Jul 25, 2008 at 12:43 PM, bansi <ma...@yahoo.com> wrote:
>>>>>
>>>>> Finally i am able to avoid ugly stack trace rendered on Browser due to
>>>>> ugly
>>>>> ViewExpiredException by putting following snippet of code in
>>>>> afterPhase()
>>>>> method of LoginPahseListener
>>>>> if (pe.getFacesContext().getViewRoot() == null)
>>>>>        {
>>>>>  //This message never get rendered onto Browser. Not sure Why?
>>>>>  FacesContext.getCurrentInstance().addMessage(null,
>>>>>                    new FacesMessage(FacesMessage.SEVERITY_INFO,
>>>>> "Session
>>>>> Timeout", "Redirecting to Login Page"));
>>>>>            logger.warn("ViewRoot is null");
>>>>>            ExternalContext ec = facesContext.getExternalContext();
>>>>>            HttpServletRequest request = (HttpServletRequest)
>>>>> facesContext.getExternalContext().getRequest();
>>>>>            HOME_PAGE = request.getContextPath();
>>>>>            logger.debug("Session timed out and userInfo");
>>>>>            // session already timed out and destroyed. redirect to home
>>>>> page.
>>>>>            try
>>>>>            {
>>>>>                String homePage = HOME_PAGE + "/login.faces";
>>>>>                logger.debug(" redirect to home page=" + homePage);
>>>>>                ec.redirect(homePage);
>>>>>            } catch (Exception e)
>>>>>            {
>>>>>                // this should never happen
>>>>>                e.printStackTrace();
>>>>>            }
>>>>> I still have the problem of Exception shown in log file. Is it good
>>>>> idea
>>>>> to
>>>>> restore the view and continue the session
>>>>>
>>>>>
>>>>> Zigc Junk wrote:
>>>>>>
>>>>>> I use Glassfish. What is your container?
>>>>>>
>>>>>> On Thu, Jul 24, 2008 at 1:34 PM, bansi <ma...@yahoo.com> wrote:
>>>>>>>
>>>>>>> Hi Bill,
>>>>>>> I just copy/pasted your code into my PhaseListener in the
>>>>>>> beforePhase()
>>>>>>> method with the only difference in redirecting to JSF page i.e.
>>>>>>> login.faces
>>>>>>> instead of JSP/HTML page.
>>>>>>> I also have couple of  logging statements to examine the value of
>>>>>>> facesContext and session. Amazingly session value is Not Null even
>>>>>>> after
>>>>>>> session timeout. For testing purpose i have following snippet in
>>>>>>> web.xml
>>>>>>> to
>>>>>>> simulate session timeout
>>>>>>> <session-config>
>>>>>>>    <session-timeout>5</session-timeout>
>>>>>>> </session-config>
>>>>>>>
>>>>>>> Here is the stack trace which still throws ViewExpiredException on
>>>>>>> session
>>>>>>> timeout but doesnt do redirect
>>>>>>>
>>>>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>>>>> 2008-07-24 11:17:27,314 DEBUG
>>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before
>>>>>>> Phase>
>>>>>>> 2008-07-24 11:17:27,314 DEBUG
>>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
>>>>>>> =org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
>>>>>>> 11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener]
>>>>>>> -
>>>>>>> <se...@68e6bf>
>>>>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
>>>>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>>>>> 2008-07-24 11:17:27,314 WARN
>>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is
>>>>>>> null>
>>>>>>> 2008-07-24 11:17:27,314 WARN
>>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is
>>>>>>> null>
>>>>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
>>>>>>> INFO: AFTER RESTORE_VIEW(1)
>>>>>>> 2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>>>> <An
>>>>>>> exception occurred>
>>>>>>> javax.faces.application.ViewExpiredException:
>>>>>>> /addressRegistryForm.facesThe
>>>>>>> expected view was not returned for the view identifier:
>>>>>>> /addressRegistryForm.faces
>>>>>>>        at
>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>        at
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>
>>>>>>>
>>>>>>> Zigc Junk wrote:
>>>>>>>>
>>>>>>>> Since this thread is discussing the timeout, I just throw in what my
>>>>>>>> soloution is. If it is irrelevant, just ignore it.
>>>>>>>>
>>>>>>>> I got a PhaseListener to listen to restore view phase. Here is the
>>>>>>>> code snipet that deals with session timeout.
>>>>>>>>
>>>>>>>>   public void beforePhase(PhaseEvent pe) {
>>>>>>>>     FacesContext fc = pe.getFacesContext();
>>>>>>>>     ExternalContext ec = fc.getExternalContext();
>>>>>>>>     HttpSession session = (HttpSession)ec.getSession(false);
>>>>>>>>     if(session == null) {
>>>>>>>>       // session already timed out and destroyed. redirect to home
>>>>>>>> page.
>>>>>>>>       // this will cause a login.
>>>>>>>>       try {
>>>>>>>>         String homePage = "/"+HOME_PAGE+".jsf";
>>>>>>>>         ec.redirect(homePage);
>>>>>>>>       } catch(Exception e) {
>>>>>>>>         // this should never happen
>>>>>>>>         e.printStackTrace();
>>>>>>>>       }
>>>>>>>>     }
>>>>>>>>       ................
>>>>>>>>  }
>>>>>>>>
>>>>>>>> regards
>>>>>>>>
>>>>>>>> Bill
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Hasan
>>>>>>>>> Thanks for writing wonderful article. Infact i already implemented
>>>>>>>>> your
>>>>>>>>> article but it doesnt get pass thru ViewExpiredException. Here is
>>>>>>>>> the
>>>>>>>>> sequence of events happening when session times out
>>>>>>>>> From the log i see
>>>>>>>>> 1) The Listener displays session destroyed
>>>>>>>>> 2) The session timeout Filter doesnt fire for some reason and
>>>>>>>>> doesnt
>>>>>>>>> do
>>>>>>>>> redirect . I have the following mapping in web.xml
>>>>>>>>>            <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>>>>
>>>>>>>>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>>>>>>>>        </filter>
>>>>>>>>>
>>>>>>>>>        <filter-mapping>
>>>>>>>>>         <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>>>>         <url-pattern>*.faces</url-pattern>
>>>>>>>>>        </filter-mapping>
>>>>>>>>>  3) It goes back to LoginPhaseListener from where it throws
>>>>>>>>> ViewExpiredException on session Timeout
>>>>>>>>>
>>>>>>>>> Hasan Turksoy wrote:
>>>>>>>>>>
>>>>>>>>>> this
>>>>>>>>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>>>>>>>>> help you to build a session timeout handling infrastructure...
>>>>>>>>>> also,
>>>>>>>>>> you
>>>>>>>>>> can handle ajax requests by this session expired controller
>>>>>>>>>> filter...
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>>
>>>>>>>>>> Hasan...
>>>>>>>>>> www.jroller.com/hasant
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks for your suggestion. I am planning to write a filter but
>>>>>>>>>>> before
>>>>>>>>>>> that
>>>>>>>>>>> i
>>>>>>>>>>> have to get rid of ViewExpired Excpetion. Any
>>>>>>>>>>> pointers/suggestions
>>>>>>>>>>> to
>>>>>>>>>>> resolve the error will be greatly appreciated
>>>>>>>>>>> Here is the stack trace
>>>>>>>>>>> 2008-07-21 13:15:35,988 ERROR
>>>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>>>> -
>>>>>>>>>>> <An
>>>>>>>>>>> exception occurred>
>>>>>>>>>>> javax.faces.application.ViewExpiredException:
>>>>>>>>>>> /addressRegistryForm.facesThe
>>>>>>>>>>> expected view was not returned for the view identifier:
>>>>>>>>>>> /addressRegistryForm.faces
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>>>>        at
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>>>        at
>>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>>>        at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>>>        at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>>        at
>>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>>>        at
>>>>>>>>>>>
>>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> bansi wrote:
>>>>>>>>>>> >
>>>>>>>>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach
>>>>>>>>>>> as
>>>>>>>>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>>>>>>>>> >
>>>>>>>>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>>>>>>>>> >
>>>>>>>>>>> > If the session times out, JSF throws a ViewExpiredException
>>>>>>>>>>> during
>>>>>>>>>>> the
>>>>>>>>>>> > RESTORE_VIEW phase.
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> > Here is the snippet from my LoginPhaseListener. The exception
>>>>>>>>>>> is
>>>>>>>>>>> thrown
>>>>>>>>>>> > from afterPhase method
>>>>>>>>>>> >
>>>>>>>>>>> >  /**
>>>>>>>>>>> >      * After phase.
>>>>>>>>>>> >      *
>>>>>>>>>>> >      * @param pe
>>>>>>>>>>> >      *            the pe
>>>>>>>>>>> >      * @see
>>>>>>>>>>> >
>>>>>>>>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>>>>>>>>> >      */
>>>>>>>>>>> >     public void afterPhase(final PhaseEvent pe)
>>>>>>>>>>> >     {
>>>>>>>>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>>>>>>>>> >         final String viewId =
>>>>>>>>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws
>>>>>>>>>>> Exception
>>>>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>>>>> >         {
>>>>>>>>>>> >             final String managedBeanName =
>>>>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>>>>> >             final Object object =
>>>>>>>>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>>>>>>>>> managedBeanName
>>>>>>>>>>> +
>>>>>>>>>>> > "}")
>>>>>>>>>>> >                     .getValue(facesContext);
>>>>>>>>>>> >             if (object == null)
>>>>>>>>>>> >             {
>>>>>>>>>>> >                 logger.error("OnPageLoad cannot be executed, no
>>>>>>>>>>> such
>>>>>>>>>>> > managed bean:" + managedBeanName);
>>>>>>>>>>> >             } else
>>>>>>>>>>> >             {
>>>>>>>>>>> >                 final Login loginBean = (Login) object;
>>>>>>>>>>> >                 loginBean.onPageLoad();
>>>>>>>>>>> >             }
>>>>>>>>>>> >         } else
>>>>>>>>>>> >         {
>>>>>>>>>>> >             final String managedBeanName =
>>>>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>>>>> >             final String BackingBeanName =
>>>>>>>>>>> managedBeanName.substring(0,
>>>>>>>>>>> > 1).toUpperCase()
>>>>>>>>>>> >                     + managedBeanName.substring(1,
>>>>>>>>>>> > managedBeanName.length());
>>>>>>>>>>> >                    }
>>>>>>>>>>> >     }
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>> >  /**
>>>>>>>>>>> >      * Gets the managed bean name from view.
>>>>>>>>>>> >      *
>>>>>>>>>>> >      * @param viewId
>>>>>>>>>>> >      *            the view id
>>>>>>>>>>> >      * @return the managed bean name from view
>>>>>>>>>>> >      */
>>>>>>>>>>> >     public String getManagedBeanNameFromView(final String
>>>>>>>>>>> viewId)
>>>>>>>>>>> >     {
>>>>>>>>>>> >         String pageName;
>>>>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>>>>> >         {
>>>>>>>>>>> >             pageName = viewId.substring(1, viewId.length() -
>>>>>>>>>>> 6);
>>>>>>>>>>> >         } else
>>>>>>>>>>> >         {
>>>>>>>>>>> >             pageName = viewId.substring(1, viewId.length() -
>>>>>>>>>>> 10);
>>>>>>>>>>> >         }
>>>>>>>>>>> >         return pageName + "Bean";
>>>>>>>>>>> >     }
>>>>>>>>>>> >
>>>>>>>>>>> > Here is the stack trace
>>>>>>>>>>> >
>>>>>>>>>>> > 2008-07-15 10:31:12,192 ERROR
>>>>>>>>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] -
>>>>>>>>>>> <Exception
>>>>>>>>>>> in
>>>>>>>>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>>>>>>>>> > java.lang.NullPointerException
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>>> >       at
>>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>>> >       at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>>> >       at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>>>> -
>>>>>>>>>>> <An
>>>>>>>>>>> > exception occurred>
>>>>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>>>>> /deviceForm.facesThe
>>>>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>>>>> /deviceForm.faces
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>>> >       at
>>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>>> >       at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>>> >       at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>>>> -
>>>>>>>>>>> <An
>>>>>>>>>>> > exception occurred>
>>>>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>>>>> /deviceForm.facesThe
>>>>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>>>>> /deviceForm.faces
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>>> >       at
>>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>>> >       at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>>> >       at
>>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>>> >       at
>>>>>>>>>>> >
>>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>>> > 2008-07-15 10:31:12,348 WARN
>>>>>>>>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>>>>>>>>> <MyFaces
>>>>>>>>>>> > special javascript could not be retrieved from request-map.>
>>>>>>>>>>> >
>>>>>>>>>>> >
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> View this message in context:
>>>>>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>>>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>>>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18656526.html
>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18658899.html
>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18705015.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
Hi Bill,
Thanks for your response.  I didnt understood what do you mean by
"you should check if it is right after a new login. "
Could you please tell me what to check if it is right.
Also the session times out after 30 mins no matter what i.e. even though
their is no Inactivity



Zigc Junk wrote:
> 
> In the beforePhase method of your restore_view phase listener, you
> should check if it is right after a new login. If yes, redirect to the
> home page. This should suppress the ViewExpiredException.
> 
> regards
> 
> Bill
> 
> On Fri, Jul 25, 2008 at 3:16 PM, bansi <ma...@yahoo.com> wrote:
>>
>> Thats perfect. But how do i prevent it from generating
>> ViewExpiredException
>> or in other words how do i handle ViewExpiredException as i still see it
>> in
>> the Log file
>> I tried the following snippet in web.xml but it doesnt work
>> <error-page>
>>
>> <exception-type>javax.faces.application.ViewExpiredException</exception-type>
>>    <location>/user/timeout.jsp</location>
>>  </error-page>
>> Is it due to RichFaces version 3.1 or Myfaces 1.2.2 or Tomcat 5.5
>>
>>
>> Zigc Junk wrote:
>>>
>>> That message never get rendered because redirect will create a new
>>> instance of FacesContext.
>>>
>>> Bill
>>>
>>> On Fri, Jul 25, 2008 at 12:43 PM, bansi <ma...@yahoo.com> wrote:
>>>>
>>>> Finally i am able to avoid ugly stack trace rendered on Browser due to
>>>> ugly
>>>> ViewExpiredException by putting following snippet of code in
>>>> afterPhase()
>>>> method of LoginPahseListener
>>>> if (pe.getFacesContext().getViewRoot() == null)
>>>>        {
>>>>  //This message never get rendered onto Browser. Not sure Why?
>>>>  FacesContext.getCurrentInstance().addMessage(null,
>>>>                    new FacesMessage(FacesMessage.SEVERITY_INFO,
>>>> "Session
>>>> Timeout", "Redirecting to Login Page"));
>>>>            logger.warn("ViewRoot is null");
>>>>            ExternalContext ec = facesContext.getExternalContext();
>>>>            HttpServletRequest request = (HttpServletRequest)
>>>> facesContext.getExternalContext().getRequest();
>>>>            HOME_PAGE = request.getContextPath();
>>>>            logger.debug("Session timed out and userInfo");
>>>>            // session already timed out and destroyed. redirect to home
>>>> page.
>>>>            try
>>>>            {
>>>>                String homePage = HOME_PAGE + "/login.faces";
>>>>                logger.debug(" redirect to home page=" + homePage);
>>>>                ec.redirect(homePage);
>>>>            } catch (Exception e)
>>>>            {
>>>>                // this should never happen
>>>>                e.printStackTrace();
>>>>            }
>>>> I still have the problem of Exception shown in log file. Is it good
>>>> idea
>>>> to
>>>> restore the view and continue the session
>>>>
>>>>
>>>> Zigc Junk wrote:
>>>>>
>>>>> I use Glassfish. What is your container?
>>>>>
>>>>> On Thu, Jul 24, 2008 at 1:34 PM, bansi <ma...@yahoo.com> wrote:
>>>>>>
>>>>>> Hi Bill,
>>>>>> I just copy/pasted your code into my PhaseListener in the
>>>>>> beforePhase()
>>>>>> method with the only difference in redirecting to JSF page i.e.
>>>>>> login.faces
>>>>>> instead of JSP/HTML page.
>>>>>> I also have couple of  logging statements to examine the value of
>>>>>> facesContext and session. Amazingly session value is Not Null even
>>>>>> after
>>>>>> session timeout. For testing purpose i have following snippet in
>>>>>> web.xml
>>>>>> to
>>>>>> simulate session timeout
>>>>>> <session-config>
>>>>>>    <session-timeout>5</session-timeout>
>>>>>> </session-config>
>>>>>>
>>>>>> Here is the stack trace which still throws ViewExpiredException on
>>>>>> session
>>>>>> timeout but doesnt do redirect
>>>>>>
>>>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>>>> 2008-07-24 11:17:27,314 DEBUG
>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before
>>>>>> Phase>
>>>>>> 2008-07-24 11:17:27,314 DEBUG
>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
>>>>>> =org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
>>>>>> 11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener]
>>>>>> -
>>>>>> <se...@68e6bf>
>>>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
>>>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>>>> 2008-07-24 11:17:27,314 WARN
>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is
>>>>>> null>
>>>>>> 2008-07-24 11:17:27,314 WARN
>>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is
>>>>>> null>
>>>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
>>>>>> INFO: AFTER RESTORE_VIEW(1)
>>>>>> 2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>>> <An
>>>>>> exception occurred>
>>>>>> javax.faces.application.ViewExpiredException:
>>>>>> /addressRegistryForm.facesThe
>>>>>> expected view was not returned for the view identifier:
>>>>>> /addressRegistryForm.faces
>>>>>>        at
>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>        at
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>
>>>>>>
>>>>>> Zigc Junk wrote:
>>>>>>>
>>>>>>> Since this thread is discussing the timeout, I just throw in what my
>>>>>>> soloution is. If it is irrelevant, just ignore it.
>>>>>>>
>>>>>>> I got a PhaseListener to listen to restore view phase. Here is the
>>>>>>> code snipet that deals with session timeout.
>>>>>>>
>>>>>>>   public void beforePhase(PhaseEvent pe) {
>>>>>>>     FacesContext fc = pe.getFacesContext();
>>>>>>>     ExternalContext ec = fc.getExternalContext();
>>>>>>>     HttpSession session = (HttpSession)ec.getSession(false);
>>>>>>>     if(session == null) {
>>>>>>>       // session already timed out and destroyed. redirect to home
>>>>>>> page.
>>>>>>>       // this will cause a login.
>>>>>>>       try {
>>>>>>>         String homePage = "/"+HOME_PAGE+".jsf";
>>>>>>>         ec.redirect(homePage);
>>>>>>>       } catch(Exception e) {
>>>>>>>         // this should never happen
>>>>>>>         e.printStackTrace();
>>>>>>>       }
>>>>>>>     }
>>>>>>>       ................
>>>>>>>  }
>>>>>>>
>>>>>>> regards
>>>>>>>
>>>>>>> Bill
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hasan
>>>>>>>> Thanks for writing wonderful article. Infact i already implemented
>>>>>>>> your
>>>>>>>> article but it doesnt get pass thru ViewExpiredException. Here is
>>>>>>>> the
>>>>>>>> sequence of events happening when session times out
>>>>>>>> From the log i see
>>>>>>>> 1) The Listener displays session destroyed
>>>>>>>> 2) The session timeout Filter doesnt fire for some reason and
>>>>>>>> doesnt
>>>>>>>> do
>>>>>>>> redirect . I have the following mapping in web.xml
>>>>>>>>            <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>>>
>>>>>>>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>>>>>>>        </filter>
>>>>>>>>
>>>>>>>>        <filter-mapping>
>>>>>>>>         <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>>>         <url-pattern>*.faces</url-pattern>
>>>>>>>>        </filter-mapping>
>>>>>>>>  3) It goes back to LoginPhaseListener from where it throws
>>>>>>>> ViewExpiredException on session Timeout
>>>>>>>>
>>>>>>>> Hasan Turksoy wrote:
>>>>>>>>>
>>>>>>>>> this
>>>>>>>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>>>>>>>> help you to build a session timeout handling infrastructure...
>>>>>>>>> also,
>>>>>>>>> you
>>>>>>>>> can handle ajax requests by this session expired controller
>>>>>>>>> filter...
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>>
>>>>>>>>> Hasan...
>>>>>>>>> www.jroller.com/hasant
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Thanks for your suggestion. I am planning to write a filter but
>>>>>>>>>> before
>>>>>>>>>> that
>>>>>>>>>> i
>>>>>>>>>> have to get rid of ViewExpired Excpetion. Any
>>>>>>>>>> pointers/suggestions
>>>>>>>>>> to
>>>>>>>>>> resolve the error will be greatly appreciated
>>>>>>>>>> Here is the stack trace
>>>>>>>>>> 2008-07-21 13:15:35,988 ERROR
>>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>>> -
>>>>>>>>>> <An
>>>>>>>>>> exception occurred>
>>>>>>>>>> javax.faces.application.ViewExpiredException:
>>>>>>>>>> /addressRegistryForm.facesThe
>>>>>>>>>> expected view was not returned for the view identifier:
>>>>>>>>>> /addressRegistryForm.faces
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>>>        at
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>>        at
>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>>        at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>>        at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>>        at
>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>>        at
>>>>>>>>>>
>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> bansi wrote:
>>>>>>>>>> >
>>>>>>>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach
>>>>>>>>>> as
>>>>>>>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>>>>>>>> >
>>>>>>>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>>>>>>>> >
>>>>>>>>>> > If the session times out, JSF throws a ViewExpiredException
>>>>>>>>>> during
>>>>>>>>>> the
>>>>>>>>>> > RESTORE_VIEW phase.
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> > Here is the snippet from my LoginPhaseListener. The exception
>>>>>>>>>> is
>>>>>>>>>> thrown
>>>>>>>>>> > from afterPhase method
>>>>>>>>>> >
>>>>>>>>>> >  /**
>>>>>>>>>> >      * After phase.
>>>>>>>>>> >      *
>>>>>>>>>> >      * @param pe
>>>>>>>>>> >      *            the pe
>>>>>>>>>> >      * @see
>>>>>>>>>> >
>>>>>>>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>>>>>>>> >      */
>>>>>>>>>> >     public void afterPhase(final PhaseEvent pe)
>>>>>>>>>> >     {
>>>>>>>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>>>>>>>> >         final String viewId =
>>>>>>>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws
>>>>>>>>>> Exception
>>>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>>>> >         {
>>>>>>>>>> >             final String managedBeanName =
>>>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>>>> >             final Object object =
>>>>>>>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>>>>>>>> managedBeanName
>>>>>>>>>> +
>>>>>>>>>> > "}")
>>>>>>>>>> >                     .getValue(facesContext);
>>>>>>>>>> >             if (object == null)
>>>>>>>>>> >             {
>>>>>>>>>> >                 logger.error("OnPageLoad cannot be executed, no
>>>>>>>>>> such
>>>>>>>>>> > managed bean:" + managedBeanName);
>>>>>>>>>> >             } else
>>>>>>>>>> >             {
>>>>>>>>>> >                 final Login loginBean = (Login) object;
>>>>>>>>>> >                 loginBean.onPageLoad();
>>>>>>>>>> >             }
>>>>>>>>>> >         } else
>>>>>>>>>> >         {
>>>>>>>>>> >             final String managedBeanName =
>>>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>>>> >             final String BackingBeanName =
>>>>>>>>>> managedBeanName.substring(0,
>>>>>>>>>> > 1).toUpperCase()
>>>>>>>>>> >                     + managedBeanName.substring(1,
>>>>>>>>>> > managedBeanName.length());
>>>>>>>>>> >                    }
>>>>>>>>>> >     }
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>> >  /**
>>>>>>>>>> >      * Gets the managed bean name from view.
>>>>>>>>>> >      *
>>>>>>>>>> >      * @param viewId
>>>>>>>>>> >      *            the view id
>>>>>>>>>> >      * @return the managed bean name from view
>>>>>>>>>> >      */
>>>>>>>>>> >     public String getManagedBeanNameFromView(final String
>>>>>>>>>> viewId)
>>>>>>>>>> >     {
>>>>>>>>>> >         String pageName;
>>>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>>>> >         {
>>>>>>>>>> >             pageName = viewId.substring(1, viewId.length() -
>>>>>>>>>> 6);
>>>>>>>>>> >         } else
>>>>>>>>>> >         {
>>>>>>>>>> >             pageName = viewId.substring(1, viewId.length() -
>>>>>>>>>> 10);
>>>>>>>>>> >         }
>>>>>>>>>> >         return pageName + "Bean";
>>>>>>>>>> >     }
>>>>>>>>>> >
>>>>>>>>>> > Here is the stack trace
>>>>>>>>>> >
>>>>>>>>>> > 2008-07-15 10:31:12,192 ERROR
>>>>>>>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] -
>>>>>>>>>> <Exception
>>>>>>>>>> in
>>>>>>>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>>>>>>>> > java.lang.NullPointerException
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>> >       at
>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>> >       at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>> >       at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>>> -
>>>>>>>>>> <An
>>>>>>>>>> > exception occurred>
>>>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>>>> /deviceForm.facesThe
>>>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>>>> /deviceForm.faces
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>> >       at
>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>> >       at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>> >       at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>>> -
>>>>>>>>>> <An
>>>>>>>>>> > exception occurred>
>>>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>>>> /deviceForm.facesThe
>>>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>>>> /deviceForm.faces
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>> >       at
>>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>> >       at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>> >       at
>>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>> >       at
>>>>>>>>>> >
>>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>> > 2008-07-15 10:31:12,348 WARN
>>>>>>>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>>>>>>>> <MyFaces
>>>>>>>>>> > special javascript could not be retrieved from request-map.>
>>>>>>>>>> >
>>>>>>>>>> >
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> View this message in context:
>>>>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> View this message in context:
>>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18656526.html
>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18658899.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18705015.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Zigc Junk <zi...@gmail.com>.
In the beforePhase method of your restore_view phase listener, you
should check if it is right after a new login. If yes, redirect to the
home page. This should suppress the ViewExpiredException.

regards

Bill

On Fri, Jul 25, 2008 at 3:16 PM, bansi <ma...@yahoo.com> wrote:
>
> Thats perfect. But how do i prevent it from generating ViewExpiredException
> or in other words how do i handle ViewExpiredException as i still see it in
> the Log file
> I tried the following snippet in web.xml but it doesnt work
> <error-page>
>
> <exception-type>javax.faces.application.ViewExpiredException</exception-type>
>    <location>/user/timeout.jsp</location>
>  </error-page>
> Is it due to RichFaces version 3.1 or Myfaces 1.2.2 or Tomcat 5.5
>
>
> Zigc Junk wrote:
>>
>> That message never get rendered because redirect will create a new
>> instance of FacesContext.
>>
>> Bill
>>
>> On Fri, Jul 25, 2008 at 12:43 PM, bansi <ma...@yahoo.com> wrote:
>>>
>>> Finally i am able to avoid ugly stack trace rendered on Browser due to
>>> ugly
>>> ViewExpiredException by putting following snippet of code in afterPhase()
>>> method of LoginPahseListener
>>> if (pe.getFacesContext().getViewRoot() == null)
>>>        {
>>>  //This message never get rendered onto Browser. Not sure Why?
>>>  FacesContext.getCurrentInstance().addMessage(null,
>>>                    new FacesMessage(FacesMessage.SEVERITY_INFO, "Session
>>> Timeout", "Redirecting to Login Page"));
>>>            logger.warn("ViewRoot is null");
>>>            ExternalContext ec = facesContext.getExternalContext();
>>>            HttpServletRequest request = (HttpServletRequest)
>>> facesContext.getExternalContext().getRequest();
>>>            HOME_PAGE = request.getContextPath();
>>>            logger.debug("Session timed out and userInfo");
>>>            // session already timed out and destroyed. redirect to home
>>> page.
>>>            try
>>>            {
>>>                String homePage = HOME_PAGE + "/login.faces";
>>>                logger.debug(" redirect to home page=" + homePage);
>>>                ec.redirect(homePage);
>>>            } catch (Exception e)
>>>            {
>>>                // this should never happen
>>>                e.printStackTrace();
>>>            }
>>> I still have the problem of Exception shown in log file. Is it good idea
>>> to
>>> restore the view and continue the session
>>>
>>>
>>> Zigc Junk wrote:
>>>>
>>>> I use Glassfish. What is your container?
>>>>
>>>> On Thu, Jul 24, 2008 at 1:34 PM, bansi <ma...@yahoo.com> wrote:
>>>>>
>>>>> Hi Bill,
>>>>> I just copy/pasted your code into my PhaseListener in the beforePhase()
>>>>> method with the only difference in redirecting to JSF page i.e.
>>>>> login.faces
>>>>> instead of JSP/HTML page.
>>>>> I also have couple of  logging statements to examine the value of
>>>>> facesContext and session. Amazingly session value is Not Null even
>>>>> after
>>>>> session timeout. For testing purpose i have following snippet in
>>>>> web.xml
>>>>> to
>>>>> simulate session timeout
>>>>> <session-config>
>>>>>    <session-timeout>5</session-timeout>
>>>>> </session-config>
>>>>>
>>>>> Here is the stack trace which still throws ViewExpiredException on
>>>>> session
>>>>> timeout but doesnt do redirect
>>>>>
>>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>>> 2008-07-24 11:17:27,314 DEBUG
>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before Phase>
>>>>> 2008-07-24 11:17:27,314 DEBUG
>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
>>>>> =org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
>>>>> 11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener] -
>>>>> <se...@68e6bf>
>>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
>>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>>> 2008-07-24 11:17:27,314 WARN
>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>>>>> 2008-07-24 11:17:27,314 WARN
>>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
>>>>> INFO: AFTER RESTORE_VIEW(1)
>>>>> 2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>> <An
>>>>> exception occurred>
>>>>> javax.faces.application.ViewExpiredException:
>>>>> /addressRegistryForm.facesThe
>>>>> expected view was not returned for the view identifier:
>>>>> /addressRegistryForm.faces
>>>>>        at
>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>        at
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>
>>>>>
>>>>> Zigc Junk wrote:
>>>>>>
>>>>>> Since this thread is discussing the timeout, I just throw in what my
>>>>>> soloution is. If it is irrelevant, just ignore it.
>>>>>>
>>>>>> I got a PhaseListener to listen to restore view phase. Here is the
>>>>>> code snipet that deals with session timeout.
>>>>>>
>>>>>>   public void beforePhase(PhaseEvent pe) {
>>>>>>     FacesContext fc = pe.getFacesContext();
>>>>>>     ExternalContext ec = fc.getExternalContext();
>>>>>>     HttpSession session = (HttpSession)ec.getSession(false);
>>>>>>     if(session == null) {
>>>>>>       // session already timed out and destroyed. redirect to home
>>>>>> page.
>>>>>>       // this will cause a login.
>>>>>>       try {
>>>>>>         String homePage = "/"+HOME_PAGE+".jsf";
>>>>>>         ec.redirect(homePage);
>>>>>>       } catch(Exception e) {
>>>>>>         // this should never happen
>>>>>>         e.printStackTrace();
>>>>>>       }
>>>>>>     }
>>>>>>       ................
>>>>>>  }
>>>>>>
>>>>>> regards
>>>>>>
>>>>>> Bill
>>>>>>
>>>>>>
>>>>>> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com> wrote:
>>>>>>>
>>>>>>> Hasan
>>>>>>> Thanks for writing wonderful article. Infact i already implemented
>>>>>>> your
>>>>>>> article but it doesnt get pass thru ViewExpiredException. Here is the
>>>>>>> sequence of events happening when session times out
>>>>>>> From the log i see
>>>>>>> 1) The Listener displays session destroyed
>>>>>>> 2) The session timeout Filter doesnt fire for some reason and doesnt
>>>>>>> do
>>>>>>> redirect . I have the following mapping in web.xml
>>>>>>>            <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>>
>>>>>>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>>>>>>        </filter>
>>>>>>>
>>>>>>>        <filter-mapping>
>>>>>>>         <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>>         <url-pattern>*.faces</url-pattern>
>>>>>>>        </filter-mapping>
>>>>>>>  3) It goes back to LoginPhaseListener from where it throws
>>>>>>> ViewExpiredException on session Timeout
>>>>>>>
>>>>>>> Hasan Turksoy wrote:
>>>>>>>>
>>>>>>>> this
>>>>>>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>>>>>>> help you to build a session timeout handling infrastructure... also,
>>>>>>>> you
>>>>>>>> can handle ajax requests by this session expired controller
>>>>>>>> filter...
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>
>>>>>>>> Hasan...
>>>>>>>> www.jroller.com/hasant
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks for your suggestion. I am planning to write a filter but
>>>>>>>>> before
>>>>>>>>> that
>>>>>>>>> i
>>>>>>>>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions
>>>>>>>>> to
>>>>>>>>> resolve the error will be greatly appreciated
>>>>>>>>> Here is the stack trace
>>>>>>>>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>> -
>>>>>>>>> <An
>>>>>>>>> exception occurred>
>>>>>>>>> javax.faces.application.ViewExpiredException:
>>>>>>>>> /addressRegistryForm.facesThe
>>>>>>>>> expected view was not returned for the view identifier:
>>>>>>>>> /addressRegistryForm.faces
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>>        at
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>>        at
>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>>        at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>>        at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>>        at
>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>>        at
>>>>>>>>>
>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> bansi wrote:
>>>>>>>>> >
>>>>>>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>>>>>>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>>>>>>> >
>>>>>>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>>>>>>> >
>>>>>>>>> > If the session times out, JSF throws a ViewExpiredException
>>>>>>>>> during
>>>>>>>>> the
>>>>>>>>> > RESTORE_VIEW phase.
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> > Here is the snippet from my LoginPhaseListener. The exception is
>>>>>>>>> thrown
>>>>>>>>> > from afterPhase method
>>>>>>>>> >
>>>>>>>>> >  /**
>>>>>>>>> >      * After phase.
>>>>>>>>> >      *
>>>>>>>>> >      * @param pe
>>>>>>>>> >      *            the pe
>>>>>>>>> >      * @see
>>>>>>>>> >
>>>>>>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>>>>>>> >      */
>>>>>>>>> >     public void afterPhase(final PhaseEvent pe)
>>>>>>>>> >     {
>>>>>>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>>>>>>> >         final String viewId =
>>>>>>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws
>>>>>>>>> Exception
>>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>>> >         {
>>>>>>>>> >             final String managedBeanName =
>>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>>> >             final Object object =
>>>>>>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>>>>>>> managedBeanName
>>>>>>>>> +
>>>>>>>>> > "}")
>>>>>>>>> >                     .getValue(facesContext);
>>>>>>>>> >             if (object == null)
>>>>>>>>> >             {
>>>>>>>>> >                 logger.error("OnPageLoad cannot be executed, no
>>>>>>>>> such
>>>>>>>>> > managed bean:" + managedBeanName);
>>>>>>>>> >             } else
>>>>>>>>> >             {
>>>>>>>>> >                 final Login loginBean = (Login) object;
>>>>>>>>> >                 loginBean.onPageLoad();
>>>>>>>>> >             }
>>>>>>>>> >         } else
>>>>>>>>> >         {
>>>>>>>>> >             final String managedBeanName =
>>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>>> >             final String BackingBeanName =
>>>>>>>>> managedBeanName.substring(0,
>>>>>>>>> > 1).toUpperCase()
>>>>>>>>> >                     + managedBeanName.substring(1,
>>>>>>>>> > managedBeanName.length());
>>>>>>>>> >                    }
>>>>>>>>> >     }
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>> >  /**
>>>>>>>>> >      * Gets the managed bean name from view.
>>>>>>>>> >      *
>>>>>>>>> >      * @param viewId
>>>>>>>>> >      *            the view id
>>>>>>>>> >      * @return the managed bean name from view
>>>>>>>>> >      */
>>>>>>>>> >     public String getManagedBeanNameFromView(final String viewId)
>>>>>>>>> >     {
>>>>>>>>> >         String pageName;
>>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>>> >         {
>>>>>>>>> >             pageName = viewId.substring(1, viewId.length() - 6);
>>>>>>>>> >         } else
>>>>>>>>> >         {
>>>>>>>>> >             pageName = viewId.substring(1, viewId.length() - 10);
>>>>>>>>> >         }
>>>>>>>>> >         return pageName + "Bean";
>>>>>>>>> >     }
>>>>>>>>> >
>>>>>>>>> > Here is the stack trace
>>>>>>>>> >
>>>>>>>>> > 2008-07-15 10:31:12,192 ERROR
>>>>>>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception
>>>>>>>>> in
>>>>>>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>>>>>>> > java.lang.NullPointerException
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>> >       at
>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>> >       at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>> >       at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>> -
>>>>>>>>> <An
>>>>>>>>> > exception occurred>
>>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>>> /deviceForm.facesThe
>>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>>> /deviceForm.faces
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>> >       at
>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>> >       at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>> >       at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>>> -
>>>>>>>>> <An
>>>>>>>>> > exception occurred>
>>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>>> /deviceForm.facesThe
>>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>>> /deviceForm.faces
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>> >       at
>>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>> >       at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>> >       at
>>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>> >       at
>>>>>>>>> >
>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>>> > 2008-07-15 10:31:12,348 WARN
>>>>>>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>>>>>>> <MyFaces
>>>>>>>>> > special javascript could not be retrieved from request-map.>
>>>>>>>>> >
>>>>>>>>> >
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> View this message in context:
>>>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18656526.html
>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18658899.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
Thats perfect. But how do i prevent it from generating ViewExpiredException
or in other words how do i handle ViewExpiredException as i still see it in
the Log file
I tried the following snippet in web.xml but it doesnt work
<error-page>
   
<exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/user/timeout.jsp</location>
  </error-page>
Is it due to RichFaces version 3.1 or Myfaces 1.2.2 or Tomcat 5.5


Zigc Junk wrote:
> 
> That message never get rendered because redirect will create a new
> instance of FacesContext.
> 
> Bill
> 
> On Fri, Jul 25, 2008 at 12:43 PM, bansi <ma...@yahoo.com> wrote:
>>
>> Finally i am able to avoid ugly stack trace rendered on Browser due to
>> ugly
>> ViewExpiredException by putting following snippet of code in afterPhase()
>> method of LoginPahseListener
>> if (pe.getFacesContext().getViewRoot() == null)
>>        {
>>  //This message never get rendered onto Browser. Not sure Why?
>>  FacesContext.getCurrentInstance().addMessage(null,
>>                    new FacesMessage(FacesMessage.SEVERITY_INFO, "Session
>> Timeout", "Redirecting to Login Page"));
>>            logger.warn("ViewRoot is null");
>>            ExternalContext ec = facesContext.getExternalContext();
>>            HttpServletRequest request = (HttpServletRequest)
>> facesContext.getExternalContext().getRequest();
>>            HOME_PAGE = request.getContextPath();
>>            logger.debug("Session timed out and userInfo");
>>            // session already timed out and destroyed. redirect to home
>> page.
>>            try
>>            {
>>                String homePage = HOME_PAGE + "/login.faces";
>>                logger.debug(" redirect to home page=" + homePage);
>>                ec.redirect(homePage);
>>            } catch (Exception e)
>>            {
>>                // this should never happen
>>                e.printStackTrace();
>>            }
>> I still have the problem of Exception shown in log file. Is it good idea
>> to
>> restore the view and continue the session
>>
>>
>> Zigc Junk wrote:
>>>
>>> I use Glassfish. What is your container?
>>>
>>> On Thu, Jul 24, 2008 at 1:34 PM, bansi <ma...@yahoo.com> wrote:
>>>>
>>>> Hi Bill,
>>>> I just copy/pasted your code into my PhaseListener in the beforePhase()
>>>> method with the only difference in redirecting to JSF page i.e.
>>>> login.faces
>>>> instead of JSP/HTML page.
>>>> I also have couple of  logging statements to examine the value of
>>>> facesContext and session. Amazingly session value is Not Null even
>>>> after
>>>> session timeout. For testing purpose i have following snippet in
>>>> web.xml
>>>> to
>>>> simulate session timeout
>>>> <session-config>
>>>>    <session-timeout>5</session-timeout>
>>>> </session-config>
>>>>
>>>> Here is the stack trace which still throws ViewExpiredException on
>>>> session
>>>> timeout but doesnt do redirect
>>>>
>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>> 2008-07-24 11:17:27,314 DEBUG
>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before Phase>
>>>> 2008-07-24 11:17:27,314 DEBUG
>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
>>>> =org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
>>>> 11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener] -
>>>> <se...@68e6bf>
>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
>>>> INFO: BEFORE RESTORE_VIEW(1)
>>>> 2008-07-24 11:17:27,314 WARN
>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>>>> 2008-07-24 11:17:27,314 WARN
>>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
>>>> INFO: AFTER RESTORE_VIEW(1)
>>>> 2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>> <An
>>>> exception occurred>
>>>> javax.faces.application.ViewExpiredException:
>>>> /addressRegistryForm.facesThe
>>>> expected view was not returned for the view identifier:
>>>> /addressRegistryForm.faces
>>>>        at
>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>        at
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>
>>>>
>>>> Zigc Junk wrote:
>>>>>
>>>>> Since this thread is discussing the timeout, I just throw in what my
>>>>> soloution is. If it is irrelevant, just ignore it.
>>>>>
>>>>> I got a PhaseListener to listen to restore view phase. Here is the
>>>>> code snipet that deals with session timeout.
>>>>>
>>>>>   public void beforePhase(PhaseEvent pe) {
>>>>>     FacesContext fc = pe.getFacesContext();
>>>>>     ExternalContext ec = fc.getExternalContext();
>>>>>     HttpSession session = (HttpSession)ec.getSession(false);
>>>>>     if(session == null) {
>>>>>       // session already timed out and destroyed. redirect to home
>>>>> page.
>>>>>       // this will cause a login.
>>>>>       try {
>>>>>         String homePage = "/"+HOME_PAGE+".jsf";
>>>>>         ec.redirect(homePage);
>>>>>       } catch(Exception e) {
>>>>>         // this should never happen
>>>>>         e.printStackTrace();
>>>>>       }
>>>>>     }
>>>>>       ................
>>>>>  }
>>>>>
>>>>> regards
>>>>>
>>>>> Bill
>>>>>
>>>>>
>>>>> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com> wrote:
>>>>>>
>>>>>> Hasan
>>>>>> Thanks for writing wonderful article. Infact i already implemented
>>>>>> your
>>>>>> article but it doesnt get pass thru ViewExpiredException. Here is the
>>>>>> sequence of events happening when session times out
>>>>>> From the log i see
>>>>>> 1) The Listener displays session destroyed
>>>>>> 2) The session timeout Filter doesnt fire for some reason and doesnt
>>>>>> do
>>>>>> redirect . I have the following mapping in web.xml
>>>>>>            <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>
>>>>>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>>>>>        </filter>
>>>>>>
>>>>>>        <filter-mapping>
>>>>>>         <filter-name>SessionTimeoutFilter</filter-name>
>>>>>>         <url-pattern>*.faces</url-pattern>
>>>>>>        </filter-mapping>
>>>>>>  3) It goes back to LoginPhaseListener from where it throws
>>>>>> ViewExpiredException on session Timeout
>>>>>>
>>>>>> Hasan Turksoy wrote:
>>>>>>>
>>>>>>> this
>>>>>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>>>>>> help you to build a session timeout handling infrastructure... also,
>>>>>>> you
>>>>>>> can handle ajax requests by this session expired controller
>>>>>>> filter...
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Hasan...
>>>>>>> www.jroller.com/hasant
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> Thanks for your suggestion. I am planning to write a filter but
>>>>>>>> before
>>>>>>>> that
>>>>>>>> i
>>>>>>>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions
>>>>>>>> to
>>>>>>>> resolve the error will be greatly appreciated
>>>>>>>> Here is the stack trace
>>>>>>>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter]
>>>>>>>> -
>>>>>>>> <An
>>>>>>>> exception occurred>
>>>>>>>> javax.faces.application.ViewExpiredException:
>>>>>>>> /addressRegistryForm.facesThe
>>>>>>>> expected view was not returned for the view identifier:
>>>>>>>> /addressRegistryForm.faces
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>>        at
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>>        at
>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>>        at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>>        at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>>        at
>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>>        at
>>>>>>>>
>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>>>>>
>>>>>>>>
>>>>>>>> bansi wrote:
>>>>>>>> >
>>>>>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>>>>>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>>>>>> >
>>>>>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>>>>>> >
>>>>>>>> > If the session times out, JSF throws a ViewExpiredException
>>>>>>>> during
>>>>>>>> the
>>>>>>>> > RESTORE_VIEW phase.
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Here is the snippet from my LoginPhaseListener. The exception is
>>>>>>>> thrown
>>>>>>>> > from afterPhase method
>>>>>>>> >
>>>>>>>> >  /**
>>>>>>>> >      * After phase.
>>>>>>>> >      *
>>>>>>>> >      * @param pe
>>>>>>>> >      *            the pe
>>>>>>>> >      * @see
>>>>>>>> >
>>>>>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>>>>>> >      */
>>>>>>>> >     public void afterPhase(final PhaseEvent pe)
>>>>>>>> >     {
>>>>>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>>>>>> >         final String viewId =
>>>>>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws
>>>>>>>> Exception
>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>> >         {
>>>>>>>> >             final String managedBeanName =
>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>> >             final Object object =
>>>>>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>>>>>> managedBeanName
>>>>>>>> +
>>>>>>>> > "}")
>>>>>>>> >                     .getValue(facesContext);
>>>>>>>> >             if (object == null)
>>>>>>>> >             {
>>>>>>>> >                 logger.error("OnPageLoad cannot be executed, no
>>>>>>>> such
>>>>>>>> > managed bean:" + managedBeanName);
>>>>>>>> >             } else
>>>>>>>> >             {
>>>>>>>> >                 final Login loginBean = (Login) object;
>>>>>>>> >                 loginBean.onPageLoad();
>>>>>>>> >             }
>>>>>>>> >         } else
>>>>>>>> >         {
>>>>>>>> >             final String managedBeanName =
>>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>>> >             final String BackingBeanName =
>>>>>>>> managedBeanName.substring(0,
>>>>>>>> > 1).toUpperCase()
>>>>>>>> >                     + managedBeanName.substring(1,
>>>>>>>> > managedBeanName.length());
>>>>>>>> >                    }
>>>>>>>> >     }
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >  /**
>>>>>>>> >      * Gets the managed bean name from view.
>>>>>>>> >      *
>>>>>>>> >      * @param viewId
>>>>>>>> >      *            the view id
>>>>>>>> >      * @return the managed bean name from view
>>>>>>>> >      */
>>>>>>>> >     public String getManagedBeanNameFromView(final String viewId)
>>>>>>>> >     {
>>>>>>>> >         String pageName;
>>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>>> >         {
>>>>>>>> >             pageName = viewId.substring(1, viewId.length() - 6);
>>>>>>>> >         } else
>>>>>>>> >         {
>>>>>>>> >             pageName = viewId.substring(1, viewId.length() - 10);
>>>>>>>> >         }
>>>>>>>> >         return pageName + "Bean";
>>>>>>>> >     }
>>>>>>>> >
>>>>>>>> > Here is the stack trace
>>>>>>>> >
>>>>>>>> > 2008-07-15 10:31:12,192 ERROR
>>>>>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception
>>>>>>>> in
>>>>>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>>>>>> > java.lang.NullPointerException
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>> >       at
>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>> >       at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>> >       at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>> -
>>>>>>>> <An
>>>>>>>> > exception occurred>
>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>> /deviceForm.facesThe
>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>> /deviceForm.faces
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>> >       at
>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>> >       at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>> >       at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>> > 2008-07-15 10:31:12,348 ERROR
>>>>>>>> [javax.faces.webapp._ErrorPageWriter]
>>>>>>>> -
>>>>>>>> <An
>>>>>>>> > exception occurred>
>>>>>>>> > javax.faces.application.ViewExpiredException:
>>>>>>>> /deviceForm.facesThe
>>>>>>>> > expected view was not returned for the view identifier:
>>>>>>>> /deviceForm.faces
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>> >       at
>>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>> >       at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>> >       at
>>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>> >       at
>>>>>>>> >
>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>>> > 2008-07-15 10:31:12,348 WARN
>>>>>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>>>>>> <MyFaces
>>>>>>>> > special javascript could not be retrieved from request-map.>
>>>>>>>> >
>>>>>>>> >
>>>>>>>>
>>>>>>>> --
>>>>>>>> View this message in context:
>>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18656526.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18658899.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Zigc Junk <zi...@gmail.com>.
That message never get rendered because redirect will create a new
instance of FacesContext.

Bill

On Fri, Jul 25, 2008 at 12:43 PM, bansi <ma...@yahoo.com> wrote:
>
> Finally i am able to avoid ugly stack trace rendered on Browser due to ugly
> ViewExpiredException by putting following snippet of code in afterPhase()
> method of LoginPahseListener
> if (pe.getFacesContext().getViewRoot() == null)
>        {
>  //This message never get rendered onto Browser. Not sure Why?
>  FacesContext.getCurrentInstance().addMessage(null,
>                    new FacesMessage(FacesMessage.SEVERITY_INFO, "Session
> Timeout", "Redirecting to Login Page"));
>            logger.warn("ViewRoot is null");
>            ExternalContext ec = facesContext.getExternalContext();
>            HttpServletRequest request = (HttpServletRequest)
> facesContext.getExternalContext().getRequest();
>            HOME_PAGE = request.getContextPath();
>            logger.debug("Session timed out and userInfo");
>            // session already timed out and destroyed. redirect to home
> page.
>            try
>            {
>                String homePage = HOME_PAGE + "/login.faces";
>                logger.debug(" redirect to home page=" + homePage);
>                ec.redirect(homePage);
>            } catch (Exception e)
>            {
>                // this should never happen
>                e.printStackTrace();
>            }
> I still have the problem of Exception shown in log file. Is it good idea to
> restore the view and continue the session
>
>
> Zigc Junk wrote:
>>
>> I use Glassfish. What is your container?
>>
>> On Thu, Jul 24, 2008 at 1:34 PM, bansi <ma...@yahoo.com> wrote:
>>>
>>> Hi Bill,
>>> I just copy/pasted your code into my PhaseListener in the beforePhase()
>>> method with the only difference in redirecting to JSF page i.e.
>>> login.faces
>>> instead of JSP/HTML page.
>>> I also have couple of  logging statements to examine the value of
>>> facesContext and session. Amazingly session value is Not Null even after
>>> session timeout. For testing purpose i have following snippet in web.xml
>>> to
>>> simulate session timeout
>>> <session-config>
>>>    <session-timeout>5</session-timeout>
>>> </session-config>
>>>
>>> Here is the stack trace which still throws ViewExpiredException on
>>> session
>>> timeout but doesnt do redirect
>>>
>>> INFO: BEFORE RESTORE_VIEW(1)
>>> 2008-07-24 11:17:27,314 DEBUG
>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before Phase>
>>> 2008-07-24 11:17:27,314 DEBUG
>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
>>> =org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
>>> 11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener] -
>>> <se...@68e6bf>
>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
>>> INFO: BEFORE RESTORE_VIEW(1)
>>> 2008-07-24 11:17:27,314 WARN
>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>>> 2008-07-24 11:17:27,314 WARN
>>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
>>> INFO: AFTER RESTORE_VIEW(1)
>>> 2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
>>> exception occurred>
>>> javax.faces.application.ViewExpiredException:
>>> /addressRegistryForm.facesThe
>>> expected view was not returned for the view identifier:
>>> /addressRegistryForm.faces
>>>        at
>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>        at
>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>
>>>
>>> Zigc Junk wrote:
>>>>
>>>> Since this thread is discussing the timeout, I just throw in what my
>>>> soloution is. If it is irrelevant, just ignore it.
>>>>
>>>> I got a PhaseListener to listen to restore view phase. Here is the
>>>> code snipet that deals with session timeout.
>>>>
>>>>   public void beforePhase(PhaseEvent pe) {
>>>>     FacesContext fc = pe.getFacesContext();
>>>>     ExternalContext ec = fc.getExternalContext();
>>>>     HttpSession session = (HttpSession)ec.getSession(false);
>>>>     if(session == null) {
>>>>       // session already timed out and destroyed. redirect to home page.
>>>>       // this will cause a login.
>>>>       try {
>>>>         String homePage = "/"+HOME_PAGE+".jsf";
>>>>         ec.redirect(homePage);
>>>>       } catch(Exception e) {
>>>>         // this should never happen
>>>>         e.printStackTrace();
>>>>       }
>>>>     }
>>>>       ................
>>>>  }
>>>>
>>>> regards
>>>>
>>>> Bill
>>>>
>>>>
>>>> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com> wrote:
>>>>>
>>>>> Hasan
>>>>> Thanks for writing wonderful article. Infact i already implemented your
>>>>> article but it doesnt get pass thru ViewExpiredException. Here is the
>>>>> sequence of events happening when session times out
>>>>> From the log i see
>>>>> 1) The Listener displays session destroyed
>>>>> 2) The session timeout Filter doesnt fire for some reason and doesnt do
>>>>> redirect . I have the following mapping in web.xml
>>>>>            <filter-name>SessionTimeoutFilter</filter-name>
>>>>>
>>>>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>>>>        </filter>
>>>>>
>>>>>        <filter-mapping>
>>>>>         <filter-name>SessionTimeoutFilter</filter-name>
>>>>>         <url-pattern>*.faces</url-pattern>
>>>>>        </filter-mapping>
>>>>>  3) It goes back to LoginPhaseListener from where it throws
>>>>> ViewExpiredException on session Timeout
>>>>>
>>>>> Hasan Turksoy wrote:
>>>>>>
>>>>>> this
>>>>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>>>>> help you to build a session timeout handling infrastructure... also,
>>>>>> you
>>>>>> can handle ajax requests by this session expired controller filter...
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Hasan...
>>>>>> www.jroller.com/hasant
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
>>>>>>
>>>>>>>
>>>>>>> Thanks for your suggestion. I am planning to write a filter but
>>>>>>> before
>>>>>>> that
>>>>>>> i
>>>>>>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
>>>>>>> resolve the error will be greatly appreciated
>>>>>>> Here is the stack trace
>>>>>>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>>>> <An
>>>>>>> exception occurred>
>>>>>>> javax.faces.application.ViewExpiredException:
>>>>>>> /addressRegistryForm.facesThe
>>>>>>> expected view was not returned for the view identifier:
>>>>>>> /addressRegistryForm.faces
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>>        at
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>>        at
>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>>        at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>>        at
>>>>>>>
>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>>        at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>        at
>>>>>>>
>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>>        at
>>>>>>>
>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>        at
>>>>>>>
>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>>        at
>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>>        at
>>>>>>>
>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>>>>
>>>>>>>
>>>>>>> bansi wrote:
>>>>>>> >
>>>>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>>>>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>>>>> >
>>>>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>>>>> >
>>>>>>> > If the session times out, JSF throws a ViewExpiredException during
>>>>>>> the
>>>>>>> > RESTORE_VIEW phase.
>>>>>>> >
>>>>>>> >
>>>>>>> > Here is the snippet from my LoginPhaseListener. The exception is
>>>>>>> thrown
>>>>>>> > from afterPhase method
>>>>>>> >
>>>>>>> >  /**
>>>>>>> >      * After phase.
>>>>>>> >      *
>>>>>>> >      * @param pe
>>>>>>> >      *            the pe
>>>>>>> >      * @see
>>>>>>> >
>>>>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>>>>> >      */
>>>>>>> >     public void afterPhase(final PhaseEvent pe)
>>>>>>> >     {
>>>>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>>>>> >         final String viewId =
>>>>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>> >         {
>>>>>>> >             final String managedBeanName =
>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>> >             final Object object =
>>>>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>>>>> managedBeanName
>>>>>>> +
>>>>>>> > "}")
>>>>>>> >                     .getValue(facesContext);
>>>>>>> >             if (object == null)
>>>>>>> >             {
>>>>>>> >                 logger.error("OnPageLoad cannot be executed, no
>>>>>>> such
>>>>>>> > managed bean:" + managedBeanName);
>>>>>>> >             } else
>>>>>>> >             {
>>>>>>> >                 final Login loginBean = (Login) object;
>>>>>>> >                 loginBean.onPageLoad();
>>>>>>> >             }
>>>>>>> >         } else
>>>>>>> >         {
>>>>>>> >             final String managedBeanName =
>>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>>> >             final String BackingBeanName =
>>>>>>> managedBeanName.substring(0,
>>>>>>> > 1).toUpperCase()
>>>>>>> >                     + managedBeanName.substring(1,
>>>>>>> > managedBeanName.length());
>>>>>>> >                    }
>>>>>>> >     }
>>>>>>> >
>>>>>>> >
>>>>>>> >  /**
>>>>>>> >      * Gets the managed bean name from view.
>>>>>>> >      *
>>>>>>> >      * @param viewId
>>>>>>> >      *            the view id
>>>>>>> >      * @return the managed bean name from view
>>>>>>> >      */
>>>>>>> >     public String getManagedBeanNameFromView(final String viewId)
>>>>>>> >     {
>>>>>>> >         String pageName;
>>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>>> >         {
>>>>>>> >             pageName = viewId.substring(1, viewId.length() - 6);
>>>>>>> >         } else
>>>>>>> >         {
>>>>>>> >             pageName = viewId.substring(1, viewId.length() - 10);
>>>>>>> >         }
>>>>>>> >         return pageName + "Bean";
>>>>>>> >     }
>>>>>>> >
>>>>>>> > Here is the stack trace
>>>>>>> >
>>>>>>> > 2008-07-15 10:31:12,192 ERROR
>>>>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>>>>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>>>>> > java.lang.NullPointerException
>>>>>>> >       at
>>>>>>> >
>>>>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>> >       at
>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>> >       at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>> >       at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter]
>>>>>>> -
>>>>>>> <An
>>>>>>> > exception occurred>
>>>>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>>>>> > expected view was not returned for the view identifier:
>>>>>>> /deviceForm.faces
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>> >       at
>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>> >       at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>> >       at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter]
>>>>>>> -
>>>>>>> <An
>>>>>>> > exception occurred>
>>>>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>>>>> > expected view was not returned for the view identifier:
>>>>>>> /deviceForm.faces
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>> >       at
>>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>> >       at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>> >       at
>>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>> >       at
>>>>>>> >
>>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>> >       at
>>>>>>> >
>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>>> > 2008-07-15 10:31:12,348 WARN
>>>>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>>>>> <MyFaces
>>>>>>> > special javascript could not be retrieved from request-map.>
>>>>>>> >
>>>>>>> >
>>>>>>>
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18656526.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
Finally i am able to avoid ugly stack trace rendered on Browser due to ugly
ViewExpiredException by putting following snippet of code in afterPhase()
method of LoginPahseListener
if (pe.getFacesContext().getViewRoot() == null)
        {
  //This message never get rendered onto Browser. Not sure Why?          
  FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_INFO, "Session
Timeout", "Redirecting to Login Page"));
            logger.warn("ViewRoot is null");
            ExternalContext ec = facesContext.getExternalContext();
            HttpServletRequest request = (HttpServletRequest)
facesContext.getExternalContext().getRequest();
            HOME_PAGE = request.getContextPath();
            logger.debug("Session timed out and userInfo");
            // session already timed out and destroyed. redirect to home
page.
            try
            {
                String homePage = HOME_PAGE + "/login.faces";
                logger.debug(" redirect to home page=" + homePage);
                ec.redirect(homePage);
            } catch (Exception e)
            {
                // this should never happen
                e.printStackTrace();
            }
I still have the problem of Exception shown in log file. Is it good idea to
restore the view and continue the session 
 

Zigc Junk wrote:
> 
> I use Glassfish. What is your container?
> 
> On Thu, Jul 24, 2008 at 1:34 PM, bansi <ma...@yahoo.com> wrote:
>>
>> Hi Bill,
>> I just copy/pasted your code into my PhaseListener in the beforePhase()
>> method with the only difference in redirecting to JSF page i.e.
>> login.faces
>> instead of JSP/HTML page.
>> I also have couple of  logging statements to examine the value of
>> facesContext and session. Amazingly session value is Not Null even after
>> session timeout. For testing purpose i have following snippet in web.xml
>> to
>> simulate session timeout
>> <session-config>
>>    <session-timeout>5</session-timeout>
>> </session-config>
>>
>> Here is the stack trace which still throws ViewExpiredException on
>> session
>> timeout but doesnt do redirect
>>
>> INFO: BEFORE RESTORE_VIEW(1)
>> 2008-07-24 11:17:27,314 DEBUG
>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before Phase>
>> 2008-07-24 11:17:27,314 DEBUG
>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
>> =org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
>> 11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener] -
>> <se...@68e6bf>
>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
>> INFO: BEFORE RESTORE_VIEW(1)
>> 2008-07-24 11:17:27,314 WARN
>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>> 2008-07-24 11:17:27,314 WARN
>> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
>> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
>> INFO: AFTER RESTORE_VIEW(1)
>> 2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
>> exception occurred>
>> javax.faces.application.ViewExpiredException:
>> /addressRegistryForm.facesThe
>> expected view was not returned for the view identifier:
>> /addressRegistryForm.faces
>>        at
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>        at
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>
>>
>> Zigc Junk wrote:
>>>
>>> Since this thread is discussing the timeout, I just throw in what my
>>> soloution is. If it is irrelevant, just ignore it.
>>>
>>> I got a PhaseListener to listen to restore view phase. Here is the
>>> code snipet that deals with session timeout.
>>>
>>>   public void beforePhase(PhaseEvent pe) {
>>>     FacesContext fc = pe.getFacesContext();
>>>     ExternalContext ec = fc.getExternalContext();
>>>     HttpSession session = (HttpSession)ec.getSession(false);
>>>     if(session == null) {
>>>       // session already timed out and destroyed. redirect to home page.
>>>       // this will cause a login.
>>>       try {
>>>         String homePage = "/"+HOME_PAGE+".jsf";
>>>         ec.redirect(homePage);
>>>       } catch(Exception e) {
>>>         // this should never happen
>>>         e.printStackTrace();
>>>       }
>>>     }
>>>       ................
>>>  }
>>>
>>> regards
>>>
>>> Bill
>>>
>>>
>>> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com> wrote:
>>>>
>>>> Hasan
>>>> Thanks for writing wonderful article. Infact i already implemented your
>>>> article but it doesnt get pass thru ViewExpiredException. Here is the
>>>> sequence of events happening when session times out
>>>> From the log i see
>>>> 1) The Listener displays session destroyed
>>>> 2) The session timeout Filter doesnt fire for some reason and doesnt do
>>>> redirect . I have the following mapping in web.xml
>>>>            <filter-name>SessionTimeoutFilter</filter-name>
>>>>
>>>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>>>        </filter>
>>>>
>>>>        <filter-mapping>
>>>>         <filter-name>SessionTimeoutFilter</filter-name>
>>>>         <url-pattern>*.faces</url-pattern>
>>>>        </filter-mapping>
>>>>  3) It goes back to LoginPhaseListener from where it throws
>>>> ViewExpiredException on session Timeout
>>>>
>>>> Hasan Turksoy wrote:
>>>>>
>>>>> this
>>>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>>>> help you to build a session timeout handling infrastructure... also,
>>>>> you
>>>>> can handle ajax requests by this session expired controller filter...
>>>>>
>>>>> Regards,
>>>>>
>>>>> Hasan...
>>>>> www.jroller.com/hasant
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
>>>>>
>>>>>>
>>>>>> Thanks for your suggestion. I am planning to write a filter but
>>>>>> before
>>>>>> that
>>>>>> i
>>>>>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
>>>>>> resolve the error will be greatly appreciated
>>>>>> Here is the stack trace
>>>>>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>>> <An
>>>>>> exception occurred>
>>>>>> javax.faces.application.ViewExpiredException:
>>>>>> /addressRegistryForm.facesThe
>>>>>> expected view was not returned for the view identifier:
>>>>>> /addressRegistryForm.faces
>>>>>>        at
>>>>>>
>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>>        at
>>>>>>
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>>        at
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>>        at
>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>>        at
>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>>        at
>>>>>>
>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>>        at
>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>>        at
>>>>>>
>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>        at
>>>>>>
>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>>        at
>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>>        at
>>>>>>
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>>        at
>>>>>>
>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>>>
>>>>>>
>>>>>> bansi wrote:
>>>>>> >
>>>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>>>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>>>> >
>>>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>>>> >
>>>>>> > If the session times out, JSF throws a ViewExpiredException during
>>>>>> the
>>>>>> > RESTORE_VIEW phase.
>>>>>> >
>>>>>> >
>>>>>> > Here is the snippet from my LoginPhaseListener. The exception is
>>>>>> thrown
>>>>>> > from afterPhase method
>>>>>> >
>>>>>> >  /**
>>>>>> >      * After phase.
>>>>>> >      *
>>>>>> >      * @param pe
>>>>>> >      *            the pe
>>>>>> >      * @see
>>>>>> >
>>>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>>>> >      */
>>>>>> >     public void afterPhase(final PhaseEvent pe)
>>>>>> >     {
>>>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>>>> >         final String viewId =
>>>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>> >         {
>>>>>> >             final String managedBeanName =
>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>> >             final Object object =
>>>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>>>> managedBeanName
>>>>>> +
>>>>>> > "}")
>>>>>> >                     .getValue(facesContext);
>>>>>> >             if (object == null)
>>>>>> >             {
>>>>>> >                 logger.error("OnPageLoad cannot be executed, no
>>>>>> such
>>>>>> > managed bean:" + managedBeanName);
>>>>>> >             } else
>>>>>> >             {
>>>>>> >                 final Login loginBean = (Login) object;
>>>>>> >                 loginBean.onPageLoad();
>>>>>> >             }
>>>>>> >         } else
>>>>>> >         {
>>>>>> >             final String managedBeanName =
>>>>>> > getManagedBeanNameFromView(viewId);
>>>>>> >             final String BackingBeanName =
>>>>>> managedBeanName.substring(0,
>>>>>> > 1).toUpperCase()
>>>>>> >                     + managedBeanName.substring(1,
>>>>>> > managedBeanName.length());
>>>>>> >                    }
>>>>>> >     }
>>>>>> >
>>>>>> >
>>>>>> >  /**
>>>>>> >      * Gets the managed bean name from view.
>>>>>> >      *
>>>>>> >      * @param viewId
>>>>>> >      *            the view id
>>>>>> >      * @return the managed bean name from view
>>>>>> >      */
>>>>>> >     public String getManagedBeanNameFromView(final String viewId)
>>>>>> >     {
>>>>>> >         String pageName;
>>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>>> >         {
>>>>>> >             pageName = viewId.substring(1, viewId.length() - 6);
>>>>>> >         } else
>>>>>> >         {
>>>>>> >             pageName = viewId.substring(1, viewId.length() - 10);
>>>>>> >         }
>>>>>> >         return pageName + "Bean";
>>>>>> >     }
>>>>>> >
>>>>>> > Here is the stack trace
>>>>>> >
>>>>>> > 2008-07-15 10:31:12,192 ERROR
>>>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>>>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>>>> > java.lang.NullPointerException
>>>>>> >       at
>>>>>> >
>>>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>> >       at
>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>> >       at
>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>> >       at
>>>>>> >
>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>> >       at
>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>> >       at
>>>>>> >
>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter]
>>>>>> -
>>>>>> <An
>>>>>> > exception occurred>
>>>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>>>> > expected view was not returned for the view identifier:
>>>>>> /deviceForm.faces
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>> >       at
>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>> >       at
>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>> >       at
>>>>>> >
>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>> >       at
>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>> >       at
>>>>>> >
>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter]
>>>>>> -
>>>>>> <An
>>>>>> > exception occurred>
>>>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>>>> > expected view was not returned for the view identifier:
>>>>>> /deviceForm.faces
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>> >       at
>>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>> >       at
>>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>> >       at
>>>>>> >
>>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>> >       at
>>>>>> org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>> >       at
>>>>>> >
>>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>> >       at
>>>>>> >
>>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>> >       at
>>>>>> >
>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>>> > 2008-07-15 10:31:12,348 WARN
>>>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>>>> <MyFaces
>>>>>> > special javascript could not be retrieved from request-map.>
>>>>>> >
>>>>>> >
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18656526.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Zigc Junk <zi...@gmail.com>.
I use Glassfish. What is your container?

On Thu, Jul 24, 2008 at 1:34 PM, bansi <ma...@yahoo.com> wrote:
>
> Hi Bill,
> I just copy/pasted your code into my PhaseListener in the beforePhase()
> method with the only difference in redirecting to JSF page i.e. login.faces
> instead of JSP/HTML page.
> I also have couple of  logging statements to examine the value of
> facesContext and session. Amazingly session value is Not Null even after
> session timeout. For testing purpose i have following snippet in web.xml to
> simulate session timeout
> <session-config>
>    <session-timeout>5</session-timeout>
> </session-config>
>
> Here is the stack trace which still throws ViewExpiredException on session
> timeout but doesnt do redirect
>
> INFO: BEFORE RESTORE_VIEW(1)
> 2008-07-24 11:17:27,314 DEBUG
> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before Phase>
> 2008-07-24 11:17:27,314 DEBUG
> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
> =org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
> 11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener] -
> <se...@68e6bf>
> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
> INFO: BEFORE RESTORE_VIEW(1)
> 2008-07-24 11:17:27,314 WARN
> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
> 2008-07-24 11:17:27,314 WARN
> [com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
> Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
> INFO: AFTER RESTORE_VIEW(1)
> 2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> exception occurred>
> javax.faces.application.ViewExpiredException: /addressRegistryForm.facesThe
> expected view was not returned for the view identifier:
> /addressRegistryForm.faces
>        at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>        at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>
>
> Zigc Junk wrote:
>>
>> Since this thread is discussing the timeout, I just throw in what my
>> soloution is. If it is irrelevant, just ignore it.
>>
>> I got a PhaseListener to listen to restore view phase. Here is the
>> code snipet that deals with session timeout.
>>
>>   public void beforePhase(PhaseEvent pe) {
>>     FacesContext fc = pe.getFacesContext();
>>     ExternalContext ec = fc.getExternalContext();
>>     HttpSession session = (HttpSession)ec.getSession(false);
>>     if(session == null) {
>>       // session already timed out and destroyed. redirect to home page.
>>       // this will cause a login.
>>       try {
>>         String homePage = "/"+HOME_PAGE+".jsf";
>>         ec.redirect(homePage);
>>       } catch(Exception e) {
>>         // this should never happen
>>         e.printStackTrace();
>>       }
>>     }
>>       ................
>>  }
>>
>> regards
>>
>> Bill
>>
>>
>> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com> wrote:
>>>
>>> Hasan
>>> Thanks for writing wonderful article. Infact i already implemented your
>>> article but it doesnt get pass thru ViewExpiredException. Here is the
>>> sequence of events happening when session times out
>>> From the log i see
>>> 1) The Listener displays session destroyed
>>> 2) The session timeout Filter doesnt fire for some reason and doesnt do
>>> redirect . I have the following mapping in web.xml
>>>            <filter-name>SessionTimeoutFilter</filter-name>
>>>
>>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>>        </filter>
>>>
>>>        <filter-mapping>
>>>         <filter-name>SessionTimeoutFilter</filter-name>
>>>         <url-pattern>*.faces</url-pattern>
>>>        </filter-mapping>
>>>  3) It goes back to LoginPhaseListener from where it throws
>>> ViewExpiredException on session Timeout
>>>
>>> Hasan Turksoy wrote:
>>>>
>>>> this
>>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>>> help you to build a session timeout handling infrastructure... also,
>>>> you
>>>> can handle ajax requests by this session expired controller filter...
>>>>
>>>> Regards,
>>>>
>>>> Hasan...
>>>> www.jroller.com/hasant
>>>>
>>>>
>>>>
>>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
>>>>
>>>>>
>>>>> Thanks for your suggestion. I am planning to write a filter but before
>>>>> that
>>>>> i
>>>>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
>>>>> resolve the error will be greatly appreciated
>>>>> Here is the stack trace
>>>>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>> <An
>>>>> exception occurred>
>>>>> javax.faces.application.ViewExpiredException:
>>>>> /addressRegistryForm.facesThe
>>>>> expected view was not returned for the view identifier:
>>>>> /addressRegistryForm.faces
>>>>>        at
>>>>>
>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>>        at
>>>>>
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>>        at
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>>        at
>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>>        at
>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>>        at
>>>>>
>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>        at
>>>>>
>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>>        at
>>>>>
>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>        at
>>>>>
>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>>        at
>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>>        at
>>>>>
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>>        at
>>>>>
>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>>
>>>>>
>>>>> bansi wrote:
>>>>> >
>>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>>> >
>>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>>> >
>>>>> > If the session times out, JSF throws a ViewExpiredException during
>>>>> the
>>>>> > RESTORE_VIEW phase.
>>>>> >
>>>>> >
>>>>> > Here is the snippet from my LoginPhaseListener. The exception is
>>>>> thrown
>>>>> > from afterPhase method
>>>>> >
>>>>> >  /**
>>>>> >      * After phase.
>>>>> >      *
>>>>> >      * @param pe
>>>>> >      *            the pe
>>>>> >      * @see
>>>>> >
>>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>>> >      */
>>>>> >     public void afterPhase(final PhaseEvent pe)
>>>>> >     {
>>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>>> >         final String viewId =
>>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>> >         {
>>>>> >             final String managedBeanName =
>>>>> > getManagedBeanNameFromView(viewId);
>>>>> >             final Object object =
>>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>>> managedBeanName
>>>>> +
>>>>> > "}")
>>>>> >                     .getValue(facesContext);
>>>>> >             if (object == null)
>>>>> >             {
>>>>> >                 logger.error("OnPageLoad cannot be executed, no such
>>>>> > managed bean:" + managedBeanName);
>>>>> >             } else
>>>>> >             {
>>>>> >                 final Login loginBean = (Login) object;
>>>>> >                 loginBean.onPageLoad();
>>>>> >             }
>>>>> >         } else
>>>>> >         {
>>>>> >             final String managedBeanName =
>>>>> > getManagedBeanNameFromView(viewId);
>>>>> >             final String BackingBeanName =
>>>>> managedBeanName.substring(0,
>>>>> > 1).toUpperCase()
>>>>> >                     + managedBeanName.substring(1,
>>>>> > managedBeanName.length());
>>>>> >                    }
>>>>> >     }
>>>>> >
>>>>> >
>>>>> >  /**
>>>>> >      * Gets the managed bean name from view.
>>>>> >      *
>>>>> >      * @param viewId
>>>>> >      *            the view id
>>>>> >      * @return the managed bean name from view
>>>>> >      */
>>>>> >     public String getManagedBeanNameFromView(final String viewId)
>>>>> >     {
>>>>> >         String pageName;
>>>>> >         if (viewId.endsWith("login.xhtml"))
>>>>> >         {
>>>>> >             pageName = viewId.substring(1, viewId.length() - 6);
>>>>> >         } else
>>>>> >         {
>>>>> >             pageName = viewId.substring(1, viewId.length() - 10);
>>>>> >         }
>>>>> >         return pageName + "Bean";
>>>>> >     }
>>>>> >
>>>>> > Here is the stack trace
>>>>> >
>>>>> > 2008-07-15 10:31:12,192 ERROR
>>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>>> > java.lang.NullPointerException
>>>>> >       at
>>>>> >
>>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>> >       at
>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>> >       at
>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>> >       at
>>>>> >
>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>> >       at
>>>>> >
>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>> >       at
>>>>> >
>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>> <An
>>>>> > exception occurred>
>>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>>> > expected view was not returned for the view identifier:
>>>>> /deviceForm.faces
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>> >       at
>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>> >       at
>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>> >       at
>>>>> >
>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>> >       at
>>>>> >
>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>> >       at
>>>>> >
>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>>> <An
>>>>> > exception occurred>
>>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>>> > expected view was not returned for the view identifier:
>>>>> /deviceForm.faces
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>> >       at
>>>>> >
>>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>> >       at
>>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>> >       at
>>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>> >       at
>>>>> >
>>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>> >       at
>>>>> >
>>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>> >       at
>>>>> >
>>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>> >       at
>>>>> >
>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>> >       at
>>>>> >
>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>>> > 2008-07-15 10:31:12,348 WARN
>>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>>> <MyFaces
>>>>> > special javascript could not be retrieved from request-map.>
>>>>> >
>>>>> >
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
Hi Bill,
I just copy/pasted your code into my PhaseListener in the beforePhase()
method with the only difference in redirecting to JSF page i.e. login.faces
instead of JSP/HTML page. 
I also have couple of  logging statements to examine the value of
facesContext and session. Amazingly session value is Not Null even after
session timeout. For testing purpose i have following snippet in web.xml to
simulate session timeout
<session-config>
    <session-timeout>5</session-timeout>
</session-config>

Here is the stack trace which still throws ViewExpiredException on session
timeout but doesnt do redirect

INFO: BEFORE RESTORE_VIEW(1)
2008-07-24 11:17:27,314 DEBUG
[com.boeing.nmt.nams.view.util.LoginPhaseListener] - <In Before Phase>
2008-07-24 11:17:27,314 DEBUG
[com.boeing.nmt.nams.view.util.LoginPhaseListener] - <FacesContext
=org.apache.myfaces.context.servlet.FacesContextImpl@100c0aa>2008-07-24
11:17:27,314 DEBUG [com.boeing.nmt.nams.view.util.LoginPhaseListener] -
<se...@68e6bf>
Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker beforePhase
INFO: BEFORE RESTORE_VIEW(1)
2008-07-24 11:17:27,314 WARN
[com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
2008-07-24 11:17:27,314 WARN
[com.boeing.nmt.nams.view.util.LoginPhaseListener] - <ViewRoot is null>
Jul 24, 2008 11:17:27 AM org.exadel.jsf.PhaseTracker afterPhase
INFO: AFTER RESTORE_VIEW(1)
2008-07-24 11:17:27,424 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
exception occurred>
javax.faces.application.ViewExpiredException: /addressRegistryForm.facesThe
expected view was not returned for the view identifier:
/addressRegistryForm.faces
	at
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)


Zigc Junk wrote:
> 
> Since this thread is discussing the timeout, I just throw in what my
> soloution is. If it is irrelevant, just ignore it.
> 
> I got a PhaseListener to listen to restore view phase. Here is the
> code snipet that deals with session timeout.
> 
>   public void beforePhase(PhaseEvent pe) {
>     FacesContext fc = pe.getFacesContext();
>     ExternalContext ec = fc.getExternalContext();
>     HttpSession session = (HttpSession)ec.getSession(false);
>     if(session == null) {
>       // session already timed out and destroyed. redirect to home page.
>       // this will cause a login.
>       try {
>         String homePage = "/"+HOME_PAGE+".jsf";
>         ec.redirect(homePage);
>       } catch(Exception e) {
>         // this should never happen
>         e.printStackTrace();
>       }
>     }
>       ................
>  }
> 
> regards
> 
> Bill
> 
> 
> On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com> wrote:
>>
>> Hasan
>> Thanks for writing wonderful article. Infact i already implemented your
>> article but it doesnt get pass thru ViewExpiredException. Here is the
>> sequence of events happening when session times out
>> From the log i see
>> 1) The Listener displays session destroyed
>> 2) The session timeout Filter doesnt fire for some reason and doesnt do
>> redirect . I have the following mapping in web.xml
>>            <filter-name>SessionTimeoutFilter</filter-name>
>>
>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>        </filter>
>>
>>        <filter-mapping>
>>         <filter-name>SessionTimeoutFilter</filter-name>
>>         <url-pattern>*.faces</url-pattern>
>>        </filter-mapping>
>>  3) It goes back to LoginPhaseListener from where it throws
>> ViewExpiredException on session Timeout
>>
>> Hasan Turksoy wrote:
>>>
>>> this
>>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>>> help you to build a session timeout handling infrastructure... also,
>>> you
>>> can handle ajax requests by this session expired controller filter...
>>>
>>> Regards,
>>>
>>> Hasan...
>>> www.jroller.com/hasant
>>>
>>>
>>>
>>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
>>>
>>>>
>>>> Thanks for your suggestion. I am planning to write a filter but before
>>>> that
>>>> i
>>>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
>>>> resolve the error will be greatly appreciated
>>>> Here is the stack trace
>>>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>> <An
>>>> exception occurred>
>>>> javax.faces.application.ViewExpiredException:
>>>> /addressRegistryForm.facesThe
>>>> expected view was not returned for the view identifier:
>>>> /addressRegistryForm.faces
>>>>        at
>>>>
>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>>        at
>>>>
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>>        at
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>>        at
>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>>        at
>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>>        at
>>>>
>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>        at
>>>>
>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>>        at
>>>>
>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>        at
>>>>
>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>        at
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>        at
>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>        at
>>>>
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>>        at
>>>>
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>        at java.lang.Thread.run(Thread.java:595)
>>>>
>>>>
>>>> bansi wrote:
>>>> >
>>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>>>> > suggested by Cagatay Civici in one of his articles i.e.
>>>> >
>>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>>> >
>>>> > If the session times out, JSF throws a ViewExpiredException during
>>>> the
>>>> > RESTORE_VIEW phase.
>>>> >
>>>> >
>>>> > Here is the snippet from my LoginPhaseListener. The exception is
>>>> thrown
>>>> > from afterPhase method
>>>> >
>>>> >  /**
>>>> >      * After phase.
>>>> >      *
>>>> >      * @param pe
>>>> >      *            the pe
>>>> >      * @see
>>>> >
>>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>>> >      */
>>>> >     public void afterPhase(final PhaseEvent pe)
>>>> >     {
>>>> >         final FacesContext facesContext = pe.getFacesContext();
>>>> >         final String viewId =
>>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>>>> >         if (viewId.endsWith("login.xhtml"))
>>>> >         {
>>>> >             final String managedBeanName =
>>>> > getManagedBeanNameFromView(viewId);
>>>> >             final Object object =
>>>> > facesContext.getApplication().createValueBinding("#{" +
>>>> managedBeanName
>>>> +
>>>> > "}")
>>>> >                     .getValue(facesContext);
>>>> >             if (object == null)
>>>> >             {
>>>> >                 logger.error("OnPageLoad cannot be executed, no such
>>>> > managed bean:" + managedBeanName);
>>>> >             } else
>>>> >             {
>>>> >                 final Login loginBean = (Login) object;
>>>> >                 loginBean.onPageLoad();
>>>> >             }
>>>> >         } else
>>>> >         {
>>>> >             final String managedBeanName =
>>>> > getManagedBeanNameFromView(viewId);
>>>> >             final String BackingBeanName =
>>>> managedBeanName.substring(0,
>>>> > 1).toUpperCase()
>>>> >                     + managedBeanName.substring(1,
>>>> > managedBeanName.length());
>>>> >                    }
>>>> >     }
>>>> >
>>>> >
>>>> >  /**
>>>> >      * Gets the managed bean name from view.
>>>> >      *
>>>> >      * @param viewId
>>>> >      *            the view id
>>>> >      * @return the managed bean name from view
>>>> >      */
>>>> >     public String getManagedBeanNameFromView(final String viewId)
>>>> >     {
>>>> >         String pageName;
>>>> >         if (viewId.endsWith("login.xhtml"))
>>>> >         {
>>>> >             pageName = viewId.substring(1, viewId.length() - 6);
>>>> >         } else
>>>> >         {
>>>> >             pageName = viewId.substring(1, viewId.length() - 10);
>>>> >         }
>>>> >         return pageName + "Bean";
>>>> >     }
>>>> >
>>>> > Here is the stack trace
>>>> >
>>>> > 2008-07-15 10:31:12,192 ERROR
>>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>>> > java.lang.NullPointerException
>>>> >       at
>>>> >
>>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>> >       at
>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>> >       at
>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>> >       at
>>>> >
>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>> >       at
>>>> >
>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>> >       at
>>>> >
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>> >       at
>>>> >
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>> <An
>>>> > exception occurred>
>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>> > expected view was not returned for the view identifier:
>>>> /deviceForm.faces
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>> >       at
>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>> >       at
>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>> >       at
>>>> >
>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>> >       at
>>>> >
>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>> >       at
>>>> >
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>> >       at
>>>> >
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>>> <An
>>>> > exception occurred>
>>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>>> > expected view was not returned for the view identifier:
>>>> /deviceForm.faces
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>> >       at
>>>> >
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>> >       at
>>>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>> >       at
>>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>> >       at
>>>> >
>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>> >       at
>>>> >
>>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>> >       at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>> >       at
>>>> >
>>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>> >       at
>>>> >
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>> >       at
>>>> >
>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>> >       at java.lang.Thread.run(Thread.java:595)
>>>> > 2008-07-15 10:31:12,348 WARN
>>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>>>> <MyFaces
>>>> > special javascript could not be retrieved from request-map.>
>>>> >
>>>> >
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>>
>>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18637945.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Zigc Junk <zi...@gmail.com>.
Since this thread is discussing the timeout, I just throw in what my
soloution is. If it is irrelevant, just ignore it.

I got a PhaseListener to listen to restore view phase. Here is the
code snipet that deals with session timeout.

  public void beforePhase(PhaseEvent pe) {
    FacesContext fc = pe.getFacesContext();
    ExternalContext ec = fc.getExternalContext();
    HttpSession session = (HttpSession)ec.getSession(false);
    if(session == null) {
      // session already timed out and destroyed. redirect to home page.
      // this will cause a login.
      try {
        String homePage = "/"+HOME_PAGE+".jsf";
        ec.redirect(homePage);
      } catch(Exception e) {
        // this should never happen
        e.printStackTrace();
      }
    }
      ................
 }

regards

Bill


On Wed, Jul 23, 2008 at 10:20 AM, bansi <ma...@yahoo.com> wrote:
>
> Hasan
> Thanks for writing wonderful article. Infact i already implemented your
> article but it doesnt get pass thru ViewExpiredException. Here is the
> sequence of events happening when session times out
> From the log i see
> 1) The Listener displays session destroyed
> 2) The session timeout Filter doesnt fire for some reason and doesnt do
> redirect . I have the following mapping in web.xml
>            <filter-name>SessionTimeoutFilter</filter-name>
>
> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>        </filter>
>
>        <filter-mapping>
>         <filter-name>SessionTimeoutFilter</filter-name>
>         <url-pattern>*.faces</url-pattern>
>        </filter-mapping>
>  3) It goes back to LoginPhaseListener from where it throws
> ViewExpiredException on session Timeout
>
> Hasan Turksoy wrote:
>>
>> this
>> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
>> help you to build a session timeout handling infrastructure... also,
>> you
>> can handle ajax requests by this session expired controller filter...
>>
>> Regards,
>>
>> Hasan...
>> www.jroller.com/hasant
>>
>>
>>
>> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
>>
>>>
>>> Thanks for your suggestion. I am planning to write a filter but before
>>> that
>>> i
>>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
>>> resolve the error will be greatly appreciated
>>> Here is the stack trace
>>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
>>> exception occurred>
>>> javax.faces.application.ViewExpiredException:
>>> /addressRegistryForm.facesThe
>>> expected view was not returned for the view identifier:
>>> /addressRegistryForm.faces
>>>        at
>>>
>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>>        at
>>>
>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>>        at
>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>>        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>>        at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>>        at
>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>>        at
>>>
>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>>        at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>        at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>        at
>>>
>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>>        at
>>>
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>>        at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>        at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>        at
>>>
>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>>        at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>        at
>>>
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>        at
>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>        at
>>>
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>>        at
>>>
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>        at java.lang.Thread.run(Thread.java:595)
>>>
>>>
>>> bansi wrote:
>>> >
>>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>>> > suggested by Cagatay Civici in one of his articles i.e.
>>> >
>>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>>> >
>>> > If the session times out, JSF throws a ViewExpiredException during the
>>> > RESTORE_VIEW phase.
>>> >
>>> >
>>> > Here is the snippet from my LoginPhaseListener. The exception is thrown
>>> > from afterPhase method
>>> >
>>> >  /**
>>> >      * After phase.
>>> >      *
>>> >      * @param pe
>>> >      *            the pe
>>> >      * @see
>>> >
>>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>>> >      */
>>> >     public void afterPhase(final PhaseEvent pe)
>>> >     {
>>> >         final FacesContext facesContext = pe.getFacesContext();
>>> >         final String viewId =
>>> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>>> >         if (viewId.endsWith("login.xhtml"))
>>> >         {
>>> >             final String managedBeanName =
>>> > getManagedBeanNameFromView(viewId);
>>> >             final Object object =
>>> > facesContext.getApplication().createValueBinding("#{" + managedBeanName
>>> +
>>> > "}")
>>> >                     .getValue(facesContext);
>>> >             if (object == null)
>>> >             {
>>> >                 logger.error("OnPageLoad cannot be executed, no such
>>> > managed bean:" + managedBeanName);
>>> >             } else
>>> >             {
>>> >                 final Login loginBean = (Login) object;
>>> >                 loginBean.onPageLoad();
>>> >             }
>>> >         } else
>>> >         {
>>> >             final String managedBeanName =
>>> > getManagedBeanNameFromView(viewId);
>>> >             final String BackingBeanName = managedBeanName.substring(0,
>>> > 1).toUpperCase()
>>> >                     + managedBeanName.substring(1,
>>> > managedBeanName.length());
>>> >                    }
>>> >     }
>>> >
>>> >
>>> >  /**
>>> >      * Gets the managed bean name from view.
>>> >      *
>>> >      * @param viewId
>>> >      *            the view id
>>> >      * @return the managed bean name from view
>>> >      */
>>> >     public String getManagedBeanNameFromView(final String viewId)
>>> >     {
>>> >         String pageName;
>>> >         if (viewId.endsWith("login.xhtml"))
>>> >         {
>>> >             pageName = viewId.substring(1, viewId.length() - 6);
>>> >         } else
>>> >         {
>>> >             pageName = viewId.substring(1, viewId.length() - 10);
>>> >         }
>>> >         return pageName + "Bean";
>>> >     }
>>> >
>>> > Here is the stack trace
>>> >
>>> > 2008-07-15 10:31:12,192 ERROR
>>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>>> > java.lang.NullPointerException
>>> >       at
>>> >
>>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>> >       at
>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>> >       at
>>> >
>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>> >       at
>>> >
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>> >       at
>>> >
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>> >       at
>>> >
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>> >       at java.lang.Thread.run(Thread.java:595)
>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>> <An
>>> > exception occurred>
>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>> > expected view was not returned for the view identifier:
>>> /deviceForm.faces
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>> >       at
>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>> >       at
>>> >
>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>> >       at
>>> >
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>> >       at
>>> >
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>> >       at
>>> >
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>> >       at java.lang.Thread.run(Thread.java:595)
>>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>>> <An
>>> > exception occurred>
>>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>>> > expected view was not returned for the view identifier:
>>> /deviceForm.faces
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>> >       at
>>> >
>>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>> >       at
>>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>> >       at
>>> >
>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>> >       at
>>> >
>>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>> >       at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>> >       at
>>> >
>>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>> >       at
>>> >
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>> >       at
>>> >
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>> >       at java.lang.Thread.run(Thread.java:595)
>>> > 2008-07-15 10:31:12,348 WARN
>>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
>>> > special javascript could not be retrieved from request-map.>
>>> >
>>> >
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Hasan Turksoy <ht...@gmail.com>.
Hi,

@bansi;
to handle the case, working of (your 2nd step) SessionTimeoutFilter (before
all the other filters and phase listeners) is a must... so, if somehow it
doesn't, then all the filters and phaselisteners which are not controlling
session (see Zigc's phaselistener for how to do this) will fail...

so, check the reason why your sessiontimeoutfilter is not being fired... is
it being fired at normal flows (i mean when the session is not timed out)?

Hasan...


On Wed, Jul 23, 2008 at 6:20 PM, bansi <ma...@yahoo.com> wrote:

>
> Hasan
> Thanks for writing wonderful article. Infact i already implemented your
> article but it doesnt get pass thru ViewExpiredException. Here is the
> sequence of events happening when session times out
> From the log i see
> 1) The Listener displays session destroyed
> 2) The session timeout Filter doesnt fire for some reason and doesnt do
> redirect . I have the following mapping in web.xml
>            <filter-name>SessionTimeoutFilter</filter-name>
>
>
> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>        </filter>
>
>        <filter-mapping>
>         <filter-name>SessionTimeoutFilter</filter-name>
>         <url-pattern>*.faces</url-pattern>
>        </filter-mapping>
>  3) It goes back to LoginPhaseListener from where it throws
> ViewExpiredException on session Timeout
>
> Hasan Turksoy wrote:
> >
> > this
> > entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user
> >may
> > help you to build a session timeout handling infrastructure... also,
> > you
> > can handle ajax requests by this session expired controller filter...
> >
> > Regards,
> >
> > Hasan...
> > www.jroller.com/hasant
> >
> >
> >
> > On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
> >
> >>
> >> Thanks for your suggestion. I am planning to write a filter but before
> >> that
> >> i
> >> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
> >> resolve the error will be greatly appreciated
> >> Here is the stack trace
> >> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] -
> <An
> >> exception occurred>
> >> javax.faces.application.ViewExpiredException:
> >> /addressRegistryForm.facesThe
> >> expected view was not returned for the view identifier:
> >> /addressRegistryForm.faces
> >>        at
> >>
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >>        at
> >>
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >>        at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >>        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >>        at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >>        at
> >>
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at
> >>
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >>        at
> >>
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at
> >>
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >>        at
> >>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >>        at
> >>
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >>        at java.lang.Thread.run(Thread.java:595)
> >>
> >>
> >> bansi wrote:
> >> >
> >> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
> >> > suggested by Cagatay Civici in one of his articles i.e.
> >> >
> >>
> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
> >> >
> >> > If the session times out, JSF throws a ViewExpiredException during the
> >> > RESTORE_VIEW phase.
> >> >
> >> >
> >> > Here is the snippet from my LoginPhaseListener. The exception is
> thrown
> >> > from afterPhase method
> >> >
> >> >  /**
> >> >      * After phase.
> >> >      *
> >> >      * @param pe
> >> >      *            the pe
> >> >      * @see
> >> >
> >> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
> >> >      */
> >> >     public void afterPhase(final PhaseEvent pe)
> >> >     {
> >> >         final FacesContext facesContext = pe.getFacesContext();
> >> >         final String viewId =
> >> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
> >> >         if (viewId.endsWith("login.xhtml"))
> >> >         {
> >> >             final String managedBeanName =
> >> > getManagedBeanNameFromView(viewId);
> >> >             final Object object =
> >> > facesContext.getApplication().createValueBinding("#{" +
> managedBeanName
> >> +
> >> > "}")
> >> >                     .getValue(facesContext);
> >> >             if (object == null)
> >> >             {
> >> >                 logger.error("OnPageLoad cannot be executed, no such
> >> > managed bean:" + managedBeanName);
> >> >             } else
> >> >             {
> >> >                 final Login loginBean = (Login) object;
> >> >                 loginBean.onPageLoad();
> >> >             }
> >> >         } else
> >> >         {
> >> >             final String managedBeanName =
> >> > getManagedBeanNameFromView(viewId);
> >> >             final String BackingBeanName =
> managedBeanName.substring(0,
> >> > 1).toUpperCase()
> >> >                     + managedBeanName.substring(1,
> >> > managedBeanName.length());
> >> >                    }
> >> >     }
> >> >
> >> >
> >> >  /**
> >> >      * Gets the managed bean name from view.
> >> >      *
> >> >      * @param viewId
> >> >      *            the view id
> >> >      * @return the managed bean name from view
> >> >      */
> >> >     public String getManagedBeanNameFromView(final String viewId)
> >> >     {
> >> >         String pageName;
> >> >         if (viewId.endsWith("login.xhtml"))
> >> >         {
> >> >             pageName = viewId.substring(1, viewId.length() - 6);
> >> >         } else
> >> >         {
> >> >             pageName = viewId.substring(1, viewId.length() - 10);
> >> >         }
> >> >         return pageName + "Bean";
> >> >     }
> >> >
> >> > Here is the stack trace
> >> >
> >> > 2008-07-15 10:31:12,192 ERROR
> >> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
> >> > PhaseListener RESTORE_VIEW(1) afterPhase>
> >> > java.lang.NullPointerException
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >> >       at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >> >       at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >> >       at
> >> >
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >> >       at
> >> >
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >> >       at
> >> >
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >> >       at
> >> >
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >> >       at java.lang.Thread.run(Thread.java:595)
> >> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
> >> <An
> >> > exception occurred>
> >> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> >> > expected view was not returned for the view identifier:
> >> /deviceForm.faces
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >> >       at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >> >       at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >> >       at
> >> >
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >> >       at
> >> >
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >> >       at
> >> >
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >> >       at
> >> >
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >> >       at java.lang.Thread.run(Thread.java:595)
> >> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
> >> <An
> >> > exception occurred>
> >> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> >> > expected view was not returned for the view identifier:
> >> /deviceForm.faces
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >> >       at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >> >       at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >> >       at
> >> >
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >> >       at
> >> >
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >> >       at
> >> >
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >> >       at
> >> >
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >> >       at java.lang.Thread.run(Thread.java:595)
> >> > 2008-07-15 10:31:12,348 WARN
> >> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
> >> > special javascript could not be retrieved from request-map.>
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
> >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Baroch Oren ברוך אורן <ba...@6tzvaim.com>.
Sorry for dropping the most important bit - my web container is Jetty 6.1.3.

- Baroch

On Wed, Jul 23, 2008 at 6:52 PM, Baroch Oren ברוך אורן <ba...@6tzvaim.com>
wrote:

> Hello Hasan, Martin, Bansi and all :-)
>
> I have to admit that I happen to encounter the same synopsis as Bansi does.
> It puzzles me too. (I've been playing around this for at least two days).
> My env: Myfaces core 1.2.2 / Tomahawk 1.1.6 / RichFaces 3.2.0SR1 / Facelets
> 1.1.14 / SpringFramework 2.5.5
>
> Would love to hear news on this topic.
>
> Baroch Oren
>
>
> On Wed, Jul 23, 2008 at 6:20 PM, bansi <ma...@yahoo.com> wrote:
>
>>
>> Hasan
>> Thanks for writing wonderful article. Infact i already implemented your
>> article but it doesnt get pass thru ViewExpiredException. Here is the
>> sequence of events happening when session times out
>> From the log i see
>> 1) The Listener displays session destroyed
>> 2) The session timeout Filter doesnt fire for some reason and doesnt do
>> redirect . I have the following mapping in web.xml
>>            <filter-name>SessionTimeoutFilter</filter-name>
>>
>>
>> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>>        </filter>
>>
>>        <filter-mapping>
>>         <filter-name>SessionTimeoutFilter</filter-name>
>>         <url-pattern>*.faces</url-pattern>
>>        </filter-mapping>
>>  3) It goes back to LoginPhaseListener from where it throws
>> ViewExpiredException on session Timeout
>>
>> Hasan Turksoy wrote:
>> >
>> > this
>> > entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user
>> >may
>> > help you to build a session timeout handling infrastructure... also,
>> > you
>> > can handle ajax requests by this session expired controller filter...
>> >
>> > Regards,
>> >
>> > Hasan...
>> > www.jroller.com/hasant
>> >
>> >
>> >
>> > On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
>> >
>> >>
>> >> Thanks for your suggestion. I am planning to write a filter but before
>> >> that
>> >> i
>> >> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
>> >> resolve the error will be greatly appreciated
>> >> Here is the stack trace
>> >> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] -
>> <An
>> >> exception occurred>
>> >> javax.faces.application.ViewExpiredException:
>> >> /addressRegistryForm.facesThe
>> >> expected view was not returned for the view identifier:
>> >> /addressRegistryForm.faces
>> >>        at
>> >>
>> >>
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> >>        at
>> >>
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> >>        at
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >>        at
>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >>        at
>> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >>        at
>> >>
>> >>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>        at
>> >>
>> >>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >>        at
>> >>
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>        at
>> >>
>> >>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >>        at
>> >>
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >>        at
>> >>
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >>        at
>> >>
>> >>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >>        at java.lang.Thread.run(Thread.java:595)
>> >>
>> >>
>> >> bansi wrote:
>> >> >
>> >> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>> >> > suggested by Cagatay Civici in one of his articles i.e.
>> >> >
>> >>
>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>> >> >
>> >> > If the session times out, JSF throws a ViewExpiredException during
>> the
>> >> > RESTORE_VIEW phase.
>> >> >
>> >> >
>> >> > Here is the snippet from my LoginPhaseListener. The exception is
>> thrown
>> >> > from afterPhase method
>> >> >
>> >> >  /**
>> >> >      * After phase.
>> >> >      *
>> >> >      * @param pe
>> >> >      *            the pe
>> >> >      * @see
>> >> >
>> >>
>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>> >> >      */
>> >> >     public void afterPhase(final PhaseEvent pe)
>> >> >     {
>> >> >         final FacesContext facesContext = pe.getFacesContext();
>> >> >         final String viewId =
>> >> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>> >> >         if (viewId.endsWith("login.xhtml"))
>> >> >         {
>> >> >             final String managedBeanName =
>> >> > getManagedBeanNameFromView(viewId);
>> >> >             final Object object =
>> >> > facesContext.getApplication().createValueBinding("#{" +
>> managedBeanName
>> >> +
>> >> > "}")
>> >> >                     .getValue(facesContext);
>> >> >             if (object == null)
>> >> >             {
>> >> >                 logger.error("OnPageLoad cannot be executed, no such
>> >> > managed bean:" + managedBeanName);
>> >> >             } else
>> >> >             {
>> >> >                 final Login loginBean = (Login) object;
>> >> >                 loginBean.onPageLoad();
>> >> >             }
>> >> >         } else
>> >> >         {
>> >> >             final String managedBeanName =
>> >> > getManagedBeanNameFromView(viewId);
>> >> >             final String BackingBeanName =
>> managedBeanName.substring(0,
>> >> > 1).toUpperCase()
>> >> >                     + managedBeanName.substring(1,
>> >> > managedBeanName.length());
>> >> >                    }
>> >> >     }
>> >> >
>> >> >
>> >> >  /**
>> >> >      * Gets the managed bean name from view.
>> >> >      *
>> >> >      * @param viewId
>> >> >      *            the view id
>> >> >      * @return the managed bean name from view
>> >> >      */
>> >> >     public String getManagedBeanNameFromView(final String viewId)
>> >> >     {
>> >> >         String pageName;
>> >> >         if (viewId.endsWith("login.xhtml"))
>> >> >         {
>> >> >             pageName = viewId.substring(1, viewId.length() - 6);
>> >> >         } else
>> >> >         {
>> >> >             pageName = viewId.substring(1, viewId.length() - 10);
>> >> >         }
>> >> >         return pageName + "Bean";
>> >> >     }
>> >> >
>> >> > Here is the stack trace
>> >> >
>> >> > 2008-07-15 10:31:12,192 ERROR
>> >> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>> >> > PhaseListener RESTORE_VIEW(1) afterPhase>
>> >> > java.lang.NullPointerException
>> >> >       at
>> >> >
>> >>
>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >> >       at
>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >> >       at
>> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >> >       at
>> >> >
>> >>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >> >       at
>> >> >
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >> >       at
>> >> >
>> >>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >> >       at java.lang.Thread.run(Thread.java:595)
>> >> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>> >> <An
>> >> > exception occurred>
>> >> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> >> > expected view was not returned for the view identifier:
>> >> /deviceForm.faces
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >> >       at
>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >> >       at
>> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >> >       at
>> >> >
>> >>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >> >       at
>> >> >
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >> >       at
>> >> >
>> >>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >> >       at java.lang.Thread.run(Thread.java:595)
>> >> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>> >> <An
>> >> > exception occurred>
>> >> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> >> > expected view was not returned for the view identifier:
>> >> /deviceForm.faces
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> >> >       at
>> >> >
>> >>
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >> >       at
>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >> >       at
>> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >> >       at
>> >> >
>> >>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >> >       at
>> >> >
>> >>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >> >       at
>> >> >
>> >>
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >> >       at
>> >> >
>> >>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >> >       at
>> >> >
>> >>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >> >       at java.lang.Thread.run(Thread.java:595)
>> >> > 2008-07-15 10:31:12,348 WARN
>> >> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] -
>> <MyFaces
>> >> > special javascript could not be retrieved from request-map.>
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>> >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
>
>
> --
> ברוך אורן, יו"ר
> שישה צבעים - בונים קהילה גאה בישראל
> התפוז 4 פרדס חנה * טל' 0545-969612
> עוד על שישה צבעים www.6tzvaim.com
> ________________________________
> רוצים לדעת מה קורה? www.makore.co.il
>



-- 
ברוך אורן, יו"ר
שישה צבעים - בונים קהילה גאה בישראל
התפוז 4 פרדס חנה * טל' 0545-969612
עוד על שישה צבעים www.6tzvaim.com
________________________________
רוצים לדעת מה קורה? www.makore.co.il

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Baroch Oren ברוך אורן <ba...@6tzvaim.com>.
Hello Hasan, Martin, Bansi and all :-)

I have to admit that I happen to encounter the same synopsis as Bansi does.
It puzzles me too. (I've been playing around this for at least two days).
My env: Myfaces core 1.2.2 / Tomahawk 1.1.6 / RichFaces 3.2.0SR1 / Facelets
1.1.14 / SpringFramework 2.5.5

Would love to hear news on this topic.

Baroch Oren

On Wed, Jul 23, 2008 at 6:20 PM, bansi <ma...@yahoo.com> wrote:

>
> Hasan
> Thanks for writing wonderful article. Infact i already implemented your
> article but it doesnt get pass thru ViewExpiredException. Here is the
> sequence of events happening when session times out
> From the log i see
> 1) The Listener displays session destroyed
> 2) The session timeout Filter doesnt fire for some reason and doesnt do
> redirect . I have the following mapping in web.xml
>            <filter-name>SessionTimeoutFilter</filter-name>
>
>
> <filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
>        </filter>
>
>        <filter-mapping>
>         <filter-name>SessionTimeoutFilter</filter-name>
>         <url-pattern>*.faces</url-pattern>
>        </filter-mapping>
>  3) It goes back to LoginPhaseListener from where it throws
> ViewExpiredException on session Timeout
>
> Hasan Turksoy wrote:
> >
> > this
> > entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user
> >may
> > help you to build a session timeout handling infrastructure... also,
> > you
> > can handle ajax requests by this session expired controller filter...
> >
> > Regards,
> >
> > Hasan...
> > www.jroller.com/hasant
> >
> >
> >
> > On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
> >
> >>
> >> Thanks for your suggestion. I am planning to write a filter but before
> >> that
> >> i
> >> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
> >> resolve the error will be greatly appreciated
> >> Here is the stack trace
> >> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] -
> <An
> >> exception occurred>
> >> javax.faces.application.ViewExpiredException:
> >> /addressRegistryForm.facesThe
> >> expected view was not returned for the view identifier:
> >> /addressRegistryForm.faces
> >>        at
> >>
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >>        at
> >>
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >>        at
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >>        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >>        at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >>        at
> >>
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at
> >>
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >>        at
> >>
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at
> >>
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>        at
> >>
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >>        at
> >>
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >>        at
> >>
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >>        at java.lang.Thread.run(Thread.java:595)
> >>
> >>
> >> bansi wrote:
> >> >
> >> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
> >> > suggested by Cagatay Civici in one of his articles i.e.
> >> >
> >>
> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
> >> >
> >> > If the session times out, JSF throws a ViewExpiredException during the
> >> > RESTORE_VIEW phase.
> >> >
> >> >
> >> > Here is the snippet from my LoginPhaseListener. The exception is
> thrown
> >> > from afterPhase method
> >> >
> >> >  /**
> >> >      * After phase.
> >> >      *
> >> >      * @param pe
> >> >      *            the pe
> >> >      * @see
> >> >
> >> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
> >> >      */
> >> >     public void afterPhase(final PhaseEvent pe)
> >> >     {
> >> >         final FacesContext facesContext = pe.getFacesContext();
> >> >         final String viewId =
> >> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
> >> >         if (viewId.endsWith("login.xhtml"))
> >> >         {
> >> >             final String managedBeanName =
> >> > getManagedBeanNameFromView(viewId);
> >> >             final Object object =
> >> > facesContext.getApplication().createValueBinding("#{" +
> managedBeanName
> >> +
> >> > "}")
> >> >                     .getValue(facesContext);
> >> >             if (object == null)
> >> >             {
> >> >                 logger.error("OnPageLoad cannot be executed, no such
> >> > managed bean:" + managedBeanName);
> >> >             } else
> >> >             {
> >> >                 final Login loginBean = (Login) object;
> >> >                 loginBean.onPageLoad();
> >> >             }
> >> >         } else
> >> >         {
> >> >             final String managedBeanName =
> >> > getManagedBeanNameFromView(viewId);
> >> >             final String BackingBeanName =
> managedBeanName.substring(0,
> >> > 1).toUpperCase()
> >> >                     + managedBeanName.substring(1,
> >> > managedBeanName.length());
> >> >                    }
> >> >     }
> >> >
> >> >
> >> >  /**
> >> >      * Gets the managed bean name from view.
> >> >      *
> >> >      * @param viewId
> >> >      *            the view id
> >> >      * @return the managed bean name from view
> >> >      */
> >> >     public String getManagedBeanNameFromView(final String viewId)
> >> >     {
> >> >         String pageName;
> >> >         if (viewId.endsWith("login.xhtml"))
> >> >         {
> >> >             pageName = viewId.substring(1, viewId.length() - 6);
> >> >         } else
> >> >         {
> >> >             pageName = viewId.substring(1, viewId.length() - 10);
> >> >         }
> >> >         return pageName + "Bean";
> >> >     }
> >> >
> >> > Here is the stack trace
> >> >
> >> > 2008-07-15 10:31:12,192 ERROR
> >> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
> >> > PhaseListener RESTORE_VIEW(1) afterPhase>
> >> > java.lang.NullPointerException
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >> >       at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >> >       at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >> >       at
> >> >
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >> >       at
> >> >
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >> >       at
> >> >
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >> >       at
> >> >
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >> >       at java.lang.Thread.run(Thread.java:595)
> >> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
> >> <An
> >> > exception occurred>
> >> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> >> > expected view was not returned for the view identifier:
> >> /deviceForm.faces
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >> >       at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >> >       at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >> >       at
> >> >
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >> >       at
> >> >
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >> >       at
> >> >
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >> >       at
> >> >
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >> >       at java.lang.Thread.run(Thread.java:595)
> >> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
> >> <An
> >> > exception occurred>
> >> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> >> > expected view was not returned for the view identifier:
> >> /deviceForm.faces
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >> >       at
> >> >
> >>
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >> >       at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >> >       at
> >> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >> >       at
> >> >
> >>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >> >       at
> >> >
> >>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >> >       at
> >> >
> >>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >> >       at
> >> >
> >>
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >> >       at
> >> >
> >>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >> >       at
> >> >
> >>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >> >       at java.lang.Thread.run(Thread.java:595)
> >> > 2008-07-15 10:31:12,348 WARN
> >> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
> >> > special javascript could not be retrieved from request-map.>
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
> >> Sent from the MyFaces - Users mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>


-- 
ברוך אורן, יו"ר
שישה צבעים - בונים קהילה גאה בישראל
התפוז 4 פרדס חנה * טל' 0545-969612
עוד על שישה צבעים www.6tzvaim.com
________________________________
רוצים לדעת מה קורה? www.makore.co.il

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
Hasan
Thanks for writing wonderful article. Infact i already implemented your
article but it doesnt get pass thru ViewExpiredException. Here is the
sequence of events happening when session times out
>From the log i see
1) The Listener displays session destroyed
2) The session timeout Filter doesnt fire for some reason and doesnt do
redirect . I have the following mapping in web.xml  
            <filter-name>SessionTimeoutFilter</filter-name>
	
<filter-class>com.boeing.nmt.nams.view.util.SessionTimeoutFilter</filter-class>
	</filter>	

	<filter-mapping>
	 <filter-name>SessionTimeoutFilter</filter-name>
	 <url-pattern>*.faces</url-pattern>
	</filter-mapping> 
 3) It goes back to LoginPhaseListener from where it throws
ViewExpiredException on session Timeout

Hasan Turksoy wrote:
> 
> this
> entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
> help you to build a session timeout handling infrastructure... also,
> you
> can handle ajax requests by this session expired controller filter...
> 
> Regards,
> 
> Hasan...
> www.jroller.com/hasant
> 
> 
> 
> On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:
> 
>>
>> Thanks for your suggestion. I am planning to write a filter but before
>> that
>> i
>> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
>> resolve the error will be greatly appreciated
>> Here is the stack trace
>> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
>> exception occurred>
>> javax.faces.application.ViewExpiredException:
>> /addressRegistryForm.facesThe
>> expected view was not returned for the view identifier:
>> /addressRegistryForm.faces
>>        at
>>
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>>        at
>>
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>>        at
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>>        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>>        at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>>        at
>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>>        at
>>
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>>        at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>        at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>        at
>>
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>        at
>>
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>        at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>        at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>        at
>>
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>>        at
>>
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>        at
>>
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>        at
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>        at
>>
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>>        at
>>
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>        at java.lang.Thread.run(Thread.java:595)
>>
>>
>> bansi wrote:
>> >
>> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
>> > suggested by Cagatay Civici in one of his articles i.e.
>> >
>> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
>> >
>> > If the session times out, JSF throws a ViewExpiredException during the
>> > RESTORE_VIEW phase.
>> >
>> >
>> > Here is the snippet from my LoginPhaseListener. The exception is thrown
>> > from afterPhase method
>> >
>> >  /**
>> >      * After phase.
>> >      *
>> >      * @param pe
>> >      *            the pe
>> >      * @see
>> >
>> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>> >      */
>> >     public void afterPhase(final PhaseEvent pe)
>> >     {
>> >         final FacesContext facesContext = pe.getFacesContext();
>> >         final String viewId =
>> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>> >         if (viewId.endsWith("login.xhtml"))
>> >         {
>> >             final String managedBeanName =
>> > getManagedBeanNameFromView(viewId);
>> >             final Object object =
>> > facesContext.getApplication().createValueBinding("#{" + managedBeanName
>> +
>> > "}")
>> >                     .getValue(facesContext);
>> >             if (object == null)
>> >             {
>> >                 logger.error("OnPageLoad cannot be executed, no such
>> > managed bean:" + managedBeanName);
>> >             } else
>> >             {
>> >                 final Login loginBean = (Login) object;
>> >                 loginBean.onPageLoad();
>> >             }
>> >         } else
>> >         {
>> >             final String managedBeanName =
>> > getManagedBeanNameFromView(viewId);
>> >             final String BackingBeanName = managedBeanName.substring(0,
>> > 1).toUpperCase()
>> >                     + managedBeanName.substring(1,
>> > managedBeanName.length());
>> >                    }
>> >     }
>> >
>> >
>> >  /**
>> >      * Gets the managed bean name from view.
>> >      *
>> >      * @param viewId
>> >      *            the view id
>> >      * @return the managed bean name from view
>> >      */
>> >     public String getManagedBeanNameFromView(final String viewId)
>> >     {
>> >         String pageName;
>> >         if (viewId.endsWith("login.xhtml"))
>> >         {
>> >             pageName = viewId.substring(1, viewId.length() - 6);
>> >         } else
>> >         {
>> >             pageName = viewId.substring(1, viewId.length() - 10);
>> >         }
>> >         return pageName + "Bean";
>> >     }
>> >
>> > Here is the stack trace
>> >
>> > 2008-07-15 10:31:12,192 ERROR
>> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
>> > PhaseListener RESTORE_VIEW(1) afterPhase>
>> > java.lang.NullPointerException
>> >       at
>> >
>> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
>> >       at
>> >
>> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
>> >       at
>> >
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
>> >       at
>> >
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >       at
>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >       at
>> >
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >       at
>> >
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >       at
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >       at
>> >
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >       at java.lang.Thread.run(Thread.java:595)
>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>> <An
>> > exception occurred>
>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> > expected view was not returned for the view identifier:
>> /deviceForm.faces
>> >       at
>> >
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> >       at
>> >
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> >       at
>> >
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >       at
>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >       at
>> >
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >       at
>> >
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >       at
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >       at
>> >
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >       at java.lang.Thread.run(Thread.java:595)
>> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] -
>> <An
>> > exception occurred>
>> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
>> > expected view was not returned for the view identifier:
>> /deviceForm.faces
>> >       at
>> >
>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>> >       at
>> >
>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>> >       at
>> >
>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>> >       at
>> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>> >       at
>> >
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>> >       at
>> >
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> >       at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> >       at
>> >
>> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> >       at
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>> >       at
>> >
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>> >       at java.lang.Thread.run(Thread.java:595)
>> > 2008-07-15 10:31:12,348 WARN
>> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
>> > special javascript could not be retrieved from request-map.>
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
>> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18613250.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.


Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by Hasan Turksoy <ht...@gmail.com>.
this entry<http://www.jroller.com/hasant/entry/jsf_logout_and_redirect_user>may
help you to build a session timeout handling infrastructure... also,
you
can handle ajax requests by this session expired controller filter...

Regards,

Hasan...
www.jroller.com/hasant



On Mon, Jul 21, 2008 at 11:58 PM, bansi <ma...@yahoo.com> wrote:

>
> Thanks for your suggestion. I am planning to write a filter but before that
> i
> have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
> resolve the error will be greatly appreciated
> Here is the stack trace
> 2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> exception occurred>
> javax.faces.application.ViewExpiredException: /addressRegistryForm.facesThe
> expected view was not returned for the view identifier:
> /addressRegistryForm.faces
>        at
>
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
>        at
>
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>        at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>        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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
>        at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
>        at
>
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
>        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>        at
>
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>        at
>
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>        at
>
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>        at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>        at
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
>        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>        at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>        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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>        at
>
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>        at java.lang.Thread.run(Thread.java:595)
>
>
> bansi wrote:
> >
> > I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
> > suggested by Cagatay Civici in one of his articles i.e.
> >
> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
> >
> > If the session times out, JSF throws a ViewExpiredException during the
> > RESTORE_VIEW phase.
> >
> >
> > Here is the snippet from my LoginPhaseListener. The exception is thrown
> > from afterPhase method
> >
> >  /**
> >      * After phase.
> >      *
> >      * @param pe
> >      *            the pe
> >      * @see
> > javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
> >      */
> >     public void afterPhase(final PhaseEvent pe)
> >     {
> >         final FacesContext facesContext = pe.getFacesContext();
> >         final String viewId =
> > pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
> >         if (viewId.endsWith("login.xhtml"))
> >         {
> >             final String managedBeanName =
> > getManagedBeanNameFromView(viewId);
> >             final Object object =
> > facesContext.getApplication().createValueBinding("#{" + managedBeanName +
> > "}")
> >                     .getValue(facesContext);
> >             if (object == null)
> >             {
> >                 logger.error("OnPageLoad cannot be executed, no such
> > managed bean:" + managedBeanName);
> >             } else
> >             {
> >                 final Login loginBean = (Login) object;
> >                 loginBean.onPageLoad();
> >             }
> >         } else
> >         {
> >             final String managedBeanName =
> > getManagedBeanNameFromView(viewId);
> >             final String BackingBeanName = managedBeanName.substring(0,
> > 1).toUpperCase()
> >                     + managedBeanName.substring(1,
> > managedBeanName.length());
> >                    }
> >     }
> >
> >
> >  /**
> >      * Gets the managed bean name from view.
> >      *
> >      * @param viewId
> >      *            the view id
> >      * @return the managed bean name from view
> >      */
> >     public String getManagedBeanNameFromView(final String viewId)
> >     {
> >         String pageName;
> >         if (viewId.endsWith("login.xhtml"))
> >         {
> >             pageName = viewId.substring(1, viewId.length() - 6);
> >         } else
> >         {
> >             pageName = viewId.substring(1, viewId.length() - 10);
> >         }
> >         return pageName + "Bean";
> >     }
> >
> > Here is the stack trace
> >
> > 2008-07-15 10:31:12,192 ERROR
> > [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
> > PhaseListener RESTORE_VIEW(1) afterPhase>
> > java.lang.NullPointerException
> >       at
> >
> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
> >       at
> >
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
> >       at
> >
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
> >       at
> > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >       at
> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >       at
> >
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >       at
> >
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >       at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >       at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >       at java.lang.Thread.run(Thread.java:595)
> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> > exception occurred>
> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> > expected view was not returned for the view identifier: /deviceForm.faces
> >       at
> >
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >       at
> >
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >       at
> > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >       at
> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >       at
> >
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >       at
> >
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >       at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >       at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >       at java.lang.Thread.run(Thread.java:595)
> > 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> > exception occurred>
> > javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> > expected view was not returned for the view identifier: /deviceForm.faces
> >       at
> >
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> >       at
> >
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> >       at
> > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> >       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >       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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> >       at
> org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> >       at
> >
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> >       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> >       at
> >
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >       at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >       at
> >
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> >       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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >       at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >       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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> >       at
> >
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >       at java.lang.Thread.run(Thread.java:595)
> > 2008-07-15 10:31:12,348 WARN
> > [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
> > special javascript could not be retrieved from request-map.>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
> Sent from the MyFaces - Users mailing list archive at Nabble.com.
>
>

Re: Session timeout results in javax.faces.application.ViewExpiredException

Posted by bansi <ma...@yahoo.com>.
Thanks for your suggestion. I am planning to write a filter but before that i
have to get rid of ViewExpired Excpetion. Any pointers/suggestions to
resolve the error will be greatly appreciated
Here is the stack trace
2008-07-21 13:15:35,988 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
exception occurred>
javax.faces.application.ViewExpiredException: /addressRegistryForm.facesThe
expected view was not returned for the view identifier:
/addressRegistryForm.faces
	at
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
	at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
	at
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
 

bansi wrote:
> 
> I am using Myfaces 1.2.2 ( JSF 1.2) and PhaseListener approach as
> suggested by Cagatay Civici in one of his articles i.e.
> http://cagataycivici.wordpress.com/2005/12/30/jsf_with_ajax_phase_listener/
> 
> If the session times out, JSF throws a ViewExpiredException during the
> RESTORE_VIEW phase. 
> 
> 
> Here is the snippet from my LoginPhaseListener. The exception is thrown
> from afterPhase method
> 
>  /**
>      * After phase.
>      * 
>      * @param pe
>      *            the pe
>      * @see
> javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
>      */
>     public void afterPhase(final PhaseEvent pe)
>     {
>         final FacesContext facesContext = pe.getFacesContext();
>         final String viewId =
> pe.getFacesContext().getViewRoot().getViewId();// Throws Exception
>         if (viewId.endsWith("login.xhtml"))
>         {
>             final String managedBeanName =
> getManagedBeanNameFromView(viewId);
>             final Object object =
> facesContext.getApplication().createValueBinding("#{" + managedBeanName +
> "}")
>                     .getValue(facesContext);
>             if (object == null)
>             {
>                 logger.error("OnPageLoad cannot be executed, no such
> managed bean:" + managedBeanName);
>             } else
>             {
>                 final Login loginBean = (Login) object;
>                 loginBean.onPageLoad();
>             }
>         } else
>         {
>             final String managedBeanName =
> getManagedBeanNameFromView(viewId);
>             final String BackingBeanName = managedBeanName.substring(0,
> 1).toUpperCase()
>                     + managedBeanName.substring(1,
> managedBeanName.length());
>                    }
>     }
> 
> 
>  /**
>      * Gets the managed bean name from view.
>      * 
>      * @param viewId
>      *            the view id
>      * @return the managed bean name from view
>      */
>     public String getManagedBeanNameFromView(final String viewId)
>     {
>         String pageName;
>         if (viewId.endsWith("login.xhtml"))
>         {
>             pageName = viewId.substring(1, viewId.length() - 6);
>         } else
>         {
>             pageName = viewId.substring(1, viewId.length() - 10);
>         }
>         return pageName + "Bean";
>     }
> 
> Here is the stack trace
> 
> 2008-07-15 10:31:12,192 ERROR
> [org.apache.myfaces.lifecycle.PhaseListenerManager] - <Exception in
> PhaseListener RESTORE_VIEW(1) afterPhase>
> java.lang.NullPointerException
> 	at
> com.boeing.nmt.nams.view.util.LoginPhaseListener.afterPhase(LoginPhaseListener.java:47)
> 	at
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:107)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> 	at
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> 	at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> exception occurred>
> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> expected view was not returned for the view identifier: /deviceForm.faces
> 	at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> 	at
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> 	at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> 2008-07-15 10:31:12,348 ERROR [javax.faces.webapp._ErrorPageWriter] - <An
> exception occurred>
> javax.faces.application.ViewExpiredException: /deviceForm.facesThe
> expected view was not returned for the view identifier: /deviceForm.faces
> 	at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:88)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
> 	at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	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.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
> 	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:256)
> 	at
> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:362)
> 	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:488)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> 	at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.SecurityFilter.doFilter(SecurityFilter.java:59)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> com.boeing.nmt.nams.view.util.MessageFilter.doFilter(MessageFilter.java:71)
> 	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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> 2008-07-15 10:31:12,348 WARN
> [org.apache.myfaces.renderkit.html.util.DefaultAddResource] - <MyFaces
> special javascript could not be retrieved from request-map.>
> 
> 

-- 
View this message in context: http://www.nabble.com/Session-timeout-results-in-javax.faces.application.ViewExpiredException-tp18518805p18577449.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.