[
https://issues.apache.org/jira/browse/MYFACES-3638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13496702#comment-13496702
]
Leonardo Uribe commented on MYFACES-3638:
-----------------------------------------
I think it is necessary to provide concrete proof of key clashing in this case.
In theory, the sequenceId ensure uniqueness, and it is always added, so there
is no way to have a problem like that. The issue in this case is that
JspViewDeclarationLanguageBase.renderView method calls saveState for a null
view, which is unexpected. It does not have sense to save a view with null
viewId. This is a leftover of the old algorithm used in MyFaces 1.2, and in
this case, do a check for null viewId is completely reasonable.
In my opinion the call to responseComplete() is not necessary, but maybe we
should review this part to ensure it works as expected.
> NPE in ServerSideStateCacheImpl
> -------------------------------
>
> Key: MYFACES-3638
> URL: https://issues.apache.org/jira/browse/MYFACES-3638
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.1.9
> Reporter: Mark Struberg
> Assignee: Mark Struberg
> Attachments: MYFACES-3638.patch
>
>
> I'm getting the following NPE when having a request which leads to a 404:
> {code}
> Nov 9 09:00:45 j02 java.lang.NullPointerException
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.renderkit.ServerSideStateCacheImpl$CounterSessionViewStorageFactory.createSerializedViewKey(ServerSideStateCacheImpl.java:1413)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.renderkit.ServerSideStateCacheImpl$CounterSessionViewStorageFactory.createSerializedViewKey(ServerSideStateCacheImpl.java:1392)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.renderkit.ServerSideStateCacheImpl.saveSerializedViewInServletSession(ServerSideStateCacheImpl.java:318)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.renderkit.ServerSideStateCacheImpl.saveSerializedView(ServerSideStateCacheImpl.java:1036)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.renderkit.html.HtmlResponseStateManager.saveState(HtmlResponseStateManager.java:149)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.application.StateManagerImpl.saveView(StateManagerImpl.java:253)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.shared.view.JspViewDeclarationLanguageBase.renderView(JspViewDeclarationLanguageBase.java:221)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:285)
> Nov 9 09:00:45 j02 at
> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
> Nov 9 09:00:45 j02 at
> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
> Nov 9 09:00:45 j02 at
> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.tomahawk.application.ResourceViewHandlerWrapper.renderView(ResourceViewHandlerWrapper.java:93)
> Nov 9 09:00:45 j02 at
> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:59)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
> Nov 9 09:00:45 j02 at
> org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.render(CodiLifecycleWrapper.java:126)
> Nov 9 09:00:45 j02 at
> javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira