[ 
https://issues.apache.org/jira/browse/MYFACES-3190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13063581#comment-13063581
 ] 

Leonardo Uribe commented on MYFACES-3190:
-----------------------------------------

That log is deliberately there, because in this case we don't want to reveal 
the reason behind the ViewExpiredException on the error page by security 
reasons, but we want to log them so the developer or administrator can know it. 
Maybe we should lower the level from SEVERE to INFO or CONFIG or FINE. I think 
in this case FINE is ok. 

> Annoying SEVERE: View State cannot be reconstructed + stacktrace with 
> ViewExpiredException
> ------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3190
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3190
>             Project: MyFaces Core
>          Issue Type: Improvement
>            Reporter: Martin Kočí
>            Priority: Minor
>         Attachments: MYFACES-3190.patch
>
>
> If user handles successfully handles ViewExpiredExpception with 
> http://weblogs.java.net/blog/edburns/archive/2009/09/03/dealing-gracefully-viewexpiredexception-jsf2,
>  myfaces still produce following output in log:
> org.apache.myfaces.shared_impl.util.StateUtils reconstruct
> SEVERE: View State cannot be reconstructed
> javax.faces.FacesException: javax.faces.application.ViewExpiredException
>       at 
> org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:496)
>       at 
> org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:378)
>       at 
> org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getSavedState(HtmlResponseStateManager.java:239)
>       at 
> org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getState(HtmlResponseStateManager.java:178)
>       at 
> org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.restoreView(DefaultFaceletsStateManagementStrategy.java:145)
>       at 
> org.apache.myfaces.application.StateManagerImpl.restoreView(StateManagerImpl.java:113)
>       at 
> org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106)
>       at 
> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView(FaceletViewDeclarationLanguage.java:1621)
>       at 
> org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:296)
>       at 
> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:123)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171)
>       at 
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
>       at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>       at java.lang.Thread.run(Thread.java:662)
> Caused by: javax.faces.application.ViewExpiredException
>       at 
> org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:489)
>       ... 24 more
> The stacktrace comes from StateUtils.reconstruct(String, ExternalContext):
>             if (log.isLoggable(Level.SEVERE))
>             {
>                 log.log(Level.SEVERE, "View State cannot be reconstructed", 
> e);
>             }
> This SEVERE log is unnecessary, because real ViewExpiredExpcetion is thrown 
> from RestoreViewExecutor.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to