myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard W. Smith, Jr." <smithh032...@gmail.com>
Subject Re: ViewExpiredException, but session hasn't timed out
Date Wed, 09 Apr 2014 17:48:35 GMT
Wow, you're using Shiro.

Would be nice to have a list of steps how you duplicate this in your app,
definitely and always.

I definitely suggest you use OmniFaces restore view component to avoid this
exception.
 On Apr 9, 2014 1:41 PM, "Felipe Jaekel" <fkjaekel@gmail.com> wrote:

> I'm getting view expired exceptions if the user tries to perform an action
> in a page that isn't fully loaded.
>
> javax.faces.application.ViewExpiredException: /page/plano/plano.jsfNo
> saved view state could be found for the view identifier:
> /page/plano/plano.jsf
>         at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:181)
>
>
> Looking at RestoreViewExceutor source code we have this:
>
>
>                     if (facesContext.getResponseComplete())
>                     {
>                         // If the view handler cannot restore the view
> and the response
>                         // is complete, it can be an error or some
> logic in restoreView.
>                         return true;
>                     }
>                     else
>                     {
>                         // If the return from
> ViewHandler.restoreView() is null, throw a ViewExpiredException with
> an
>                         // appropriate error message.
>                         throw new ViewExpiredException("No saved view
> state could be found for the view identifier: " + viewId, viewId);
>                     }
>                 }
>
>
> Page hasn't fully loaded yet, so facesContext.getResponseComplete() is
> returning false, but isn't there a way to avoid this? Page gets unusable
> after the VEE is thrown.
>
>
> Thanks in advance,
>
> Phillip
>
>
> Full stackTrace:
>
> javax.faces.application.ViewExpiredException: /page/plano/plano.jsfNo
> saved view state could be found for the view identifier:
> /page/plano/plano.jsf
>         at
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:181)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
>         at
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at
> org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:98)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
>         at
> org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
>         at
> org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
>         at
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>         at
> org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
>         at
> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>         at
> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>         at
> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>         at
> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>         at
> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>         at
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>         at
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>         at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
>         at
> com.googlecode.psiprobe.Tomcat70AgentValve.invoke(Tomcat70AgentValve.java:38)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>         at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>         at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
>         at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
>         at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:744)
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message