Dear MyFaces experts,
I’m using TomEE 1.7.1 Plus, MyFaces 2.2.5, PrimeFaces 4.0.21, Omnifaces 1.8.1,
OCPSoft Rewrite 2.0.12.
State saving: CLIENT; Session timeout: 60minutes; most pages are using
@ViewScoped beans (javax.faces.view.ViewScoped); Partial state saving is not
disabled; Encryption and compression are disabled.
Production system is working in general (4 requests per second), no user
complaints, but in logs I find these two stack traces (shown at the bottom)
constantly (2-3 cases per day). I don’t think that there are any problem with
MyFaces, but I seek any advice how to collect forensic info on what causes the
stack traces below. The problems is that I cannot reproduce those cases on my
dev machine (I try short session timeout, invalidating sessions, multiple tabs,
…).
Google says, that using state saving: CLIENT should prevent
ViewExpiredExceptions. I double-checked, that all my ViewScoped and
SessionScoped beans are Serializable, and use only Serializable classes. Yet
still I get ViewExpiredException - No saved view state could be found for the
view identifier. What could be the reasons?
I’m already printing for each stack trace all the request info I can think of
(as you see in the bottom), where could I dig for additional forensic info?
Does MyFaces have any tracing facility?
java.lang.NullPointerException: null
at
org.apache.myfaces.application.StateManagerImpl.restoreView(StateManagerImpl.java:147)
~[myfaces-impl-2.2.5.jar:2.2.5]
at
org.apache.myfaces.shared.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:104)
~[myfaces-impl-2.2.5.jar:2.2.5]
at
org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:336)
~[myfaces-impl-2.2.5.jar:2.2.5]
at
javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper..java:82)
~[myfaces-api-2.2.5.jar:2.2.5]
at
javax.faces.application.ViewHandlerWrapper.restoreView(ViewHandlerWrapper..java:82)
~[myfaces-api-2.2.5.jar:2.2.5]
at
org.omnifaces.viewhandler.RestorableViewHandler.restoreView(RestorableViewHandler.java:66)
~[omnifaces-1.8.1.jar:1.8.1-20140603]
at
org.ocpsoft.rewrite.faces.RewriteViewHandler.restoreView(RewriteViewHandler.java:102)
~[rewrite-integration-faces-2.0.12.Final.jar:2.0.12.Final]
at
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:168)
~[myfaces-impl-2.2.5.jar:2.2.5]
at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
[myfaces-impl-2.2.5.jar:2.2.5]
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
[myfaces-impl-2.2.5.jar:2.2.5]
at
javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
[myfaces-api-2.2.5.jar:2.2.5]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
[tomcat7-websocket.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:205)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
[catalina.jar:7.0.55]
at
org.ocpsoft.rewrite.servlet.impl.HttpRewriteResultHandler.handleResult(HttpRewriteResultHandler.java:41)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.ocpsoft.rewrite.servlet.RewriteFilter.rewrite(RewriteFilter.java:268)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:188)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
lt.asseco.tar.setup.jsf.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:30)
[CharacterEncodingFilter.class:na]
at
org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77)
[omnifaces-1.8.1.jar:1.8.1-20140603]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve..java:220)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve..java:122)
[catalina.jar:7.0.55]
at
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
[tomee-catalina-1.7.1.jar:1.7.1]
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
[catalina.jar:7.0.55]
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
[catalina.jar:7.0.55]
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
[catalina.jar:7.0.55]
at
org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:188)
[tomcat-coyote.jar:7.0.55]
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
[tomcat-coyote.jar:7.0.55]
at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440)
[tomcat-coyote.jar:7.0.55]
at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429)
[tomcat-coyote.jar:7.0.55]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_67]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_67]
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread..java:61)
[tomcat-coyote.jar:7.0.55]
at java.lang.Thread.run(Thread.java:745)
[na:1.7.0_67]
ERROR 2014-10-07 11:05:54,879 ##### REQUEST ANALYSIS #####: host:
85.206.12.185, method: POST, requestURL:
https://www.e-tar.lt/portal/legalAct.html?documentId=6c1b67f0e01411e388bee944977d73d2,
AJAX: false, sessionId: 06A20B649055AC25B4455630ABB84966.asHost2, userAgent:
Mozilla/5.0 (Windows NT 6.0; rv:32.0) Gecko/20100101 Firefox/32.0,
contentTypesFromAccept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
javax.faces.application.ViewExpiredException: /portal/legalAct.html - No saved
view state could be found for the view identifier: /portal/legalAct.html
at
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:181)
~[myfaces-impl-2.2.5.jar:2.2.5]
at
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196)
[myfaces-impl-2.2.5.jar:2.2.5]
at
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143)
[myfaces-impl-2.2.5.jar:2.2.5]
at
javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
[myfaces-api-2.2.5.jar:2.2.5]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
[tomcat7-websocket.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:205)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
[catalina.jar:7.0.55]
at
org.ocpsoft.rewrite.servlet.impl.HttpRewriteResultHandler.handleResult(HttpRewriteResultHandler.java:41)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.ocpsoft.rewrite.servlet.RewriteFilter.rewrite(RewriteFilter.java:268)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.ocpsoft.rewrite.servlet.RewriteFilter.doFilter(RewriteFilter.java:188)
[rewrite-servlet-2.0.12.Final.jar:2.0.12.Final]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
lt.asseco.tar.setup.jsf.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:30)
[CharacterEncodingFilter.class:na]
at
org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:77)
[omnifaces-1.8.1.jar:1.8.1-20140603]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve..java:220)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve..java:122)
[catalina.jar:7.0.55]
at
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
[tomee-catalina-1.7.1.jar:1.7.1]
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
[catalina.jar:7.0.55]
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
[catalina.jar:7.0.55]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
[catalina.jar:7.0.55]
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
[catalina.jar:7.0.55]
at
org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:188)
[tomcat-coyote.jar:7.0.55]
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
[tomcat-coyote.jar:7.0.55]
at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440)
[tomcat-coyote.jar:7.0.55]
at
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429)
[tomcat-coyote.jar:7.0.55]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[na:1.7.0_67]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[na:1.7.0_67]
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread..java:61)
[tomcat-coyote.jar:7.0.55]
at java.lang.Thread.run(Thread.java:745)
[na:1.7.0_67]