You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@deltaspike.apache.org by "l.penet@senat.fr" <l....@senat.fr> on 2014/06/10 20:52:13 UTC
NPE when view pooling / CACHE_EL_EXPRESSIONS == alwaysRecompile
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(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.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
This NPE occurs in the evalutation of an EL expression in a tag
component which is "cleanly" included. By clean, I mean it that the
inclusion is defined in a "normal" xhtml file, in opposition to some
dynamic inclusions I perform sometimes. This tag component is included
in my application banner. It is not rendered during login, then
displayed once the user is logged. This is done using standard
rendered="..." attribute and did not cause a bug before.
In FaceletStateValueExpression#getWrapped(ELContext context)
public ValueExpression getWrapped(ELContext context)
{
FacesContext facesContext = (FacesContext)
context.getContext(FacesContext.class);
if (facesContext == null)
{
facesContext = FacesContext.getCurrentInstance();
}
UIViewRoot root = facesContext.getViewRoot();
FaceletState map = (FaceletState) root.getAttributes().get(
ComponentSupport.FACELET_STATE_INSTANCE);
return map.getBinding(uniqueId, key);
}
the map is defined but does not contained the keyed value. Thus the NPE
in FaceletStateValueExpression#getValue(ELContext context).
The problem completely disappears if I switch to CACHE_EL_EXPRESSIONS =
strict.
It occurs with myfaces 2.2.2 and deltaspike 0.7 and 0.8-SNAPSHOT. The
above stacktrace is obtained with 0.8-SNAPSHOT. I do not know if I it is
a MyFaces of DS bug.
Tell me what additional information I can provide...
Ludovic
|
| AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
|
Re: NPE when view pooling / CACHE_EL_EXPRESSIONS == alwaysRecompile
Posted by Gerhard Petracek <ge...@gmail.com>.
hi ludovic,
if it doesn't happen without view-pooling, it sounds like an issue with
myfaces-core.
regards,
gerhard
2014-06-10 20:52 GMT+02:00 l.penet@senat.fr <l....@senat.fr>:
> 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.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(
> AbstractHttp11Processor.java:1009) at org.apache.coyote.AbstractProtocol$
> AbstractConnectionHandler.process(AbstractProtocol.java:589) at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
>
> This NPE occurs in the evalutation of an EL expression in a tag component
> which is "cleanly" included. By clean, I mean it that the inclusion is
> defined in a "normal" xhtml file, in opposition to some dynamic inclusions
> I perform sometimes. This tag component is included in my application
> banner. It is not rendered during login, then displayed once the user is
> logged. This is done using standard rendered="..." attribute and did not
> cause a bug before.
>
> In FaceletStateValueExpression#getWrapped(ELContext context)
>
> public ValueExpression getWrapped(ELContext context)
> {
> FacesContext facesContext = (FacesContext) context.getContext(
> FacesContext.class);
> if (facesContext == null)
> {
> facesContext = FacesContext.getCurrentInstance();
> }
> UIViewRoot root = facesContext.getViewRoot();
> FaceletState map = (FaceletState) root.getAttributes().get(
> ComponentSupport.FACELET_STATE_INSTANCE);
> return map.getBinding(uniqueId, key);
> }
>
> the map is defined but does not contained the keyed value. Thus the NPE in
> FaceletStateValueExpression#getValue(ELContext context).
>
> The problem completely disappears if I switch to CACHE_EL_EXPRESSIONS =
> strict.
>
> It occurs with myfaces 2.2.2 and deltaspike 0.7 and 0.8-SNAPSHOT. The
> above stacktrace is obtained with 0.8-SNAPSHOT. I do not know if I it is a
> MyFaces of DS bug.
>
> Tell me what additional information I can provide...
>
> Ludovic
>
> |
> | AVANT D'IMPRIMER, PENSEZ A L'ENVIRONNEMENT.
> |
>