myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Commented] (MYFACES-3638) NPE in ServerSideStateCacheImpl
Date Wed, 14 Nov 2012 00:16:13 GMT

    [ 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

Mime
View raw message