Re: Resolution of implicit ELExpressions

Markus Jung <[email protected]> Thu, 30 Jan 2025 13:01:35 +0100
Newsgroups gmane.comp.java.openejb.user
Message-ID <[email protected]>
Hey Till,


this is definitely not a known issue, thanks for reporting! We had a 
similar issue like this a couple months ago in our milestone phase: 
https://issues.apache.org/jira/browse/TOMEE-4355


I filed a bug for this in our JIRA so we can keep track of this 
https://issues.apache.org/jira/browse/TOMEE-4450


Thanks

Markus


On 30.01.25 12:34, Till Gräfenberg wrote:
> Hello together,
>
> Starting with TomEE Plume 10.0.0 I mentioned some issues in resolving
> implicit ELExpressions like "#{request}" or "#{session}" in my JSF 
> project.
>
> The resolved expression is a proxy object without any initialized
> attributes.
>
> In order to reproduce this issue, I set up a vanilla TomEE Plume
> installation. The faces servlet is configured. Loading the following
> .xhtml page:
>
> <html xmlns="http://www.w3.org/1999/xhtml" 
> xmlns:h="jakarta.faces.html"> <h:body><h:outputText
> value="#{request.contextPath}"/></h:body></html>
>
> gives this error message:
>
> 30-Jan-2025 12:04:14.294 SCHWERWIEGEND [http-nio-8080-exec-8]
> com.sun.faces.application.view.FaceletViewHandlingStrategy.handleRenderException 
>
> Error Rendering View[/index.xhtml]
>     jakarta.el.PropertyNotFoundException: /index.xhtml @15,54
> value="#{request['contextPath']}": Die Eigenschaft [contextPath] wurde
> für den Typ
> [org.apache.webbeans.custom.Object$$OwbNormalScopeProxy6949990480] nicht
> gefunden
>         at
> com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:75) 
>
>         at
> jakarta.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:206) 
>
>         at
> jakarta.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:175) 
>
>         at jakarta.faces.component.UIOutput.getValue(UIOutput.java:134)
>         at
> com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:163) 
>
>         at
> com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:303) 
>
>         at
> com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:135) 
>
>         at
> jakarta.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:586) 
>
>         at
> jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1442)
>         at
> jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
>         at
> jakarta.faces.component.UIComponent.encodeAll(UIComponent.java:1438)
>         at
> com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:449) 
>
>         at
> com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:160) 
>
>         at
> jakarta.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:125) 
>
>         at
> com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:93) 
>
>         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:72)
>         at
> com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:150)
>         at
> jakarta.faces.webapp.FacesServlet.executeLifecyle(FacesServlet.java:692)
>         at 
> jakarta.faces.webapp.FacesServlet.service(FacesServlet.java:449)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) 
>
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) 
>
>         at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) 
>
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) 
>
>         at
> org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:67)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) 
>
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) 
>
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) 
>
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) 
>
>         at
> org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
>         at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) 
>
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) 
>
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) 
>
>         at
> org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97) 
>
>         at
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663) 
>
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) 
>
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) 
>
>         at
> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397) 
>
>         at
> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) 
>
>         at
> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) 
>
>         at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) 
>
>         at
> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) 
>
>         at
> org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) 
>
>         at
> org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) 
>
>         at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) 
>
>         at java.base/java.lang.Thread.run(Thread.java:840)
>     Caused by: jakarta.el.PropertyNotFoundException: Die Eigenschaft
> [contextPath] wurde für den Typ
> [org.apache.webbeans.custom.Object$$OwbNormalScopeProxy6949990480] nicht
> gefunden
>         at
> jakarta.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:261)
>         at jakarta.el.BeanELResolver.property(BeanELResolver.java:330)
>         at jakarta.el.BeanELResolver.getValue(BeanELResolver.java:99)
>         at
> com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:139) 
>
>         at
> com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:164) 
>
>         at org.apache.el.parser.AstValue.getValue(AstValue.java:161)
>         at
> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:152)
>         at
> org.apache.webbeans.el22.WrappedValueExpression.getValue(WrappedValueExpression.java:67) 
>
>         at
> com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:73) 
>
>         ... 45 more
>
>
> I couldn't reproduce this behavior in TomEE Plus 10.0.0. Furthermore, I
> couldn't reproduce it on other application servers using Mojarra. Hence,
> I suppose it to be plume specific.
>
> Unfortunately, I was not able to find this issue documented. Is there a
> problem in my configuration? Is it a known issue? Have these expressions
> been removed from the specification?
>
> Thanks in advance
>
>