[ 
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

Reply via email to