Re: NPE when view pooling / CACHE_EL_EXPRESSIONS == alwaysRecompile
On 19/06/2014 17:22, Leonardo Uribe wrote: Hi I have checked the problem in deep and I was not able to reproduce the problem. The reason is view pooling algorithm saves UIViewRoot state fully (markInitialState is set to false, and the state is used later to clone the views), and that also includes the "binding" table for tags, so this table should be always saved and restored correctly. Really it is not a problem if you set EL cache mode to strict, because if you are using view pool in that view, enable or disable EL cache will have minimal effect. It should be some additional not seen element that is making it fail, or in other words, it should be a "combination" between different things, but it is impossible to understand it without an example. Thank your for investigating the problem. I agree with you : it is a combination of several things. Unhappily, I could not prepare a short example reproducing the problem without publishing significant portions of a codebase I am not allowed to publish (yet). Thanks again, Ludovic | | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT. |
Re: NPE when view pooling / CACHE_EL_EXPRESSIONS == alwaysRecompile
Hi I have checked the problem in deep and I was not able to reproduce the problem. The reason is view pooling algorithm saves UIViewRoot state fully (markInitialState is set to false, and the state is used later to clone the views), and that also includes the "binding" table for tags, so this table should be always saved and restored correctly. Really it is not a problem if you set EL cache mode to strict, because if you are using view pool in that view, enable or disable EL cache will have minimal effect. It should be some additional not seen element that is making it fail, or in other words, it should be a "combination" between different things, but it is impossible to understand it without an example. regards, Leonardo 2014-06-12 3:38 GMT-05:00 Leonardo Uribe : > Hi > > An example to reproduce it could help in this case. > > Leonardo. > > On Jun 10, 2014 11:21 PM, "l.pe...@senat.fr" wrote: >> >> (republished here following the advice of Gerhard Petracek on >> us...@deltaspike.apache.org) >> >> Dear all, >> >> I have the following NPE when view pooling is activated and >> CACHE_EL_EXPRESSIONS is set to alwaysRecompile : >> >> java.lang.NullPointerException at >> org.apache.myfaces.view.facelets.el.FaceletStateValueExpression.getValue(FaceletStateValueExpression.java:107) >> at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68) at >> org.apache.el.parser.AstValue.getValue(AstValue.java:161) at >> org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:47) at >> org.apache.el.parser.AstNot.getValue(AstNot.java:44) at >> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185) at >> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:96) >> at javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:377) >> at >> javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1211) >> at >> javax.faces.component.UIComponentBase._isPhaseExecutable(UIComponentBase.java:2440) >> at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1386) >> at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) >> at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) >> at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) >> at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) >> at javax.faces.component.UIForm.processDecodes(UIForm.java:154) at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) >> at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) >> at >> javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) >> at >> javax.faces.component.UIViewRoot._processDecodesDefault(UIViewRoot.java:1687) >> at javax.faces.component.UIViewRoot.access$500(UIViewRoot.java:77) at >> javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcessor.process(UIViewRoot.java:1778) >> at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1653) at >> javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:869) at >> org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:42) >> at >> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) >> at >> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) >> at >> org.apache.deltaspike.jsf.impl.listener.request.DeltaSpikeLifecycleWrapper.execute(DeltaSpikeLifecycleWrapper.java:89) >> at javax.faces.lifecycle.LifecycleWrapper.execute(LifecycleWrapper.java:46) >> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> fr.senat.faces.filters.HibernateNoCacheFilter.doFilter(HibernateNoCacheFilter.java:123) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> fr.senat.faces.filters.HibernateSessionConversationFilter.doFilter(HibernateSessionConversationFilter.java:128) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> fr.senat.faces.filters.HibernateUserFromPrincipalFilter.doFilter(HibernateUserFromPrincipalFilter.java:43) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) >> at >> fr.senat.faces.filters.SessionCreationTrackingFilter.doFilter(SessionCreationTracki
Re: NPE when view pooling / CACHE_EL_EXPRESSIONS == alwaysRecompile
Hi An example to reproduce it could help in this case. Leonardo. On Jun 10, 2014 11:21 PM, "l.pe...@senat.fr" wrote: > (republished here following the advice of Gerhard Petracek on > us...@deltaspike.apache.org) > > Dear all, > > I have the following NPE when view pooling is activated and > CACHE_EL_EXPRESSIONS is set to alwaysRecompile : > > java.lang.NullPointerException at org.apache.myfaces.view.facelets.el. > FaceletStateValueExpression.getValue(FaceletStateValueExpression.java:107) > at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:68) at > org.apache.el.parser.AstValue.getValue(AstValue.java:161) at > org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:47) at > org.apache.el.parser.AstNot.getValue(AstNot.java:44) at org.apache.el. > ValueExpressionImpl.getValue(ValueExpressionImpl.java:185) at > org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression > .getValue(ContextAwareTagValueExpression.java:96) at > javax.faces.component._DeltaStateHelper.eval(_DeltaStateHelper.java:377) > at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1211) > at > javax.faces.component.UIComponentBase._isPhaseExecutable(UIComponentBase.java:2440) > at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1386) > at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) > at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) > at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) > at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) > at javax.faces.component.UIForm.processDecodes(UIForm.java:154) at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) > at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) > at > javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1401) > at > javax.faces.component.UIViewRoot._processDecodesDefault(UIViewRoot.java:1687) > at javax.faces.component.UIViewRoot.access$500(UIViewRoot.java:77) at > javax.faces.component.UIViewRoot$ApplyRequestValuesPhaseProcess > or.process(UIViewRoot.java:1778) at javax.faces.component. > UIViewRoot._process(UIViewRoot.java:1653) at javax.faces.component. > UIViewRoot.processDecodes(UIViewRoot.java:869) at > org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute( > ApplyRequestValuesExecutor.java:42) at org.apache.myfaces.lifecycle. > LifecycleImpl.executePhase(LifecycleImpl.java:196) at > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) > at org.apache.deltaspike.jsf.impl.listener.request. > DeltaSpikeLifecycleWrapper.execute(DeltaSpikeLifecycleWrapper.java:89) at > javax.faces.lifecycle.LifecycleWrapper.execute(LifecycleWrapper.java:46) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:305) at org.apache.catalina.core. > ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at > fr.senat.faces.filters.HibernateNoCacheFilter.doFilter( > HibernateNoCacheFilter.java:123) at org.apache.catalina.core. > ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:210) at fr.senat.faces.filters. > HibernateSessionConversationFilter.doFilter(HibernateSessionConversationFilter.java:128) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:243) at org.apache.catalina.core. > ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at > fr.senat.faces.filters.HibernateUserFromPrincipalFilter.doFilter( > HibernateUserFromPrincipalFilter.java:43) at org.apache.catalina.core. > ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > at org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:210) at fr.senat.faces.filters. > SessionCreationTrackingFilter.doFilter(SessionCreationTrackingFilter.java:48) > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:243) at org.apache.catalina.core. > ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) > at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:947) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at org.apac