[
https://issues.apache.org/jira/browse/MYFACES-3921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14117650#comment-14117650
]
Leonardo Uribe commented on MYFACES-3921:
-----------------------------------------
I have checked the code and the problem seems to be caused because with JSF 2.0
PSS, the state is so small than sometimes it is null, or in other words, the
page does not contains any state and only the key of the view is saved. This is
nice, because in this case the key works as a token to protect the view, which
gives a great performance.
This param that you are using:
org.apache.myfaces.CACHE_OLD_VIEWS_IN_SESSION_MODE = hard-soft
was deprecated in JSF 2.2. The idea of that param was do not discard the view
state unless the GC or the session strategy (in a cluster when the state is
serialized for exampe) requires to do so. Instead, the state is kept in memory
as a soft reference. It is a good idea and it works, but with JSF 2.0 Partial
State Saving, the state became so small, that you could have a view with 70 or
80 views and the session size does not increase significantly (compare to JSF
1.2 state saving it was a reduction of 90% or even more in the view size), so
it was decided to remove it in JSF 2.2 because it no longer has the same effect
as before.
To fix the problem in your application, just remove the param, but anyway I'll
apply a patch for 2.0/2.1 branches. The fix is just avoid the null and put
EMPTY_STATES instead.
> NullPointerException at SerializedViewCollection
> ------------------------------------------------
>
> Key: MYFACES-3921
> URL: https://issues.apache.org/jira/browse/MYFACES-3921
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.1.15
> Environment: Windows, Myfaces 2.1.5, Weblogic 12c.
> Reporter: AVIJIT CHAKRABORTY
> Priority: Critical
>
> I have recently upgraded my WebApp to MyFaces 2.1.15 and after that I am
> experiencing the below error infrequently,
> java.lang.NullPointerException: null values not allowed
> at
> org.apache.commons.collections.map.AbstractReferenceMap.put(AbstractReferenceMap.java:251)
> at
> org.apache.myfaces.application.viewstate.SerializedViewCollection.add(SerializedViewCollection.java:162)
> at
> org.apache.myfaces.application.viewstate.ServerSideStateCacheImpl.saveSerializedViewInServletSession(ServerSideStateCacheImpl.java:300)
> at
> org.apache.myfaces.application.viewstate.ServerSideStateCacheImpl.saveSerializedView(ServerSideStateCacheImpl.java:578)
> at
> org.apache.myfaces.renderkit.html.HtmlResponseStateManager.saveState(HtmlResponseStateManager.java:146)
> at
> org.apache.myfaces.application.StateManagerImpl.saveView(StateManagerImpl.java:198)
> at
> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:2052)
> at
> org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:305)
> at
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
> at
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
> at
> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
> at
> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216)
> at
> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132)
> at
> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:338)
> at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
> at
> weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:74)
> I have set the following in web.xml file,
> org.apache.myfaces.CACHE_OLD_VIEWS_IN_SESSION_MODE = hard-soft
> org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION = 30,
> org.apache.myfaces.SERIALIZE_STATE_IN_SESSION= false,
> javax.faces.STATE_SAVING_METHOD = false
> I have checked similar issue in earlier version too,
> https://issues.apache.org/jira/browse/MYFACES-1296
> but this seems to be little different from the exception stack.
> In my WebApp, this issue comes infrequently. i.e. it comes randomly in random
> pages.
> Please look into it since it seems to be an issue with the version 2.1.15
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)