You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Jesse Kuhnert (JIRA)" <de...@tapestry.apache.org> on 2008/02/08 16:05:16 UTC

[jira] Updated: (TAPESTRY-1482) org.apache.tapestry.BindingException: Unable to read OGNL expression

     [ https://issues.apache.org/jira/browse/TAPESTRY-1482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jesse Kuhnert updated TAPESTRY-1482:
------------------------------------

    Fix Version/s:     (was: 4.1.5)
                   4.1.6

> org.apache.tapestry.BindingException: Unable to read OGNL expression
> --------------------------------------------------------------------
>
>                 Key: TAPESTRY-1482
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1482
>             Project: Tapestry
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: 4.1.2
>         Environment: Tapestry 4.1.2 (5/19), ognl (5/19)
>            Reporter: Heath Nielson
>             Fix For: 4.1.6
>
>
> I have a PageError component defined as follows:
> .jwc
> <component-specification allow-body="false" allow-informal-parameters="false">
>   <parameter name="delegate" default-value="page.validationDelegate" />
>   <property name="errorRenderer" />
> </component-specification>
> .html
> <html>
> <body jwcid="$content$">
>   <div jwcid="@If" condition="ognl:delegate.hasErrors" class="error">
>     <ul>
>       <li jwcid="@For" source="ognl:delegate.errorRenderers"
>         value="ognl:errorRenderer" style="color:red;" element="li">
>         <span jwcid="@Delegator" delegate="ognl:errorRenderer">Error Message</span>
>       </li>
>     </ul>
>   </div>
> </body>
> </html>
> I include this component in all pages which inherit from FormPage which defines the following bean:
> @Bean(ValidationDelegate.class)
> public abstract IValidationDelegate getValidationDelegate();
> My login page (the first viewable page) the component works as expected and I get the following log:
> DEBUG org.apache.tapestry.BaseComponent  - Begin render Login/$PageError
> DEBUG org.apache.tapestry.services.impl.HiveMindExpressionCompiler  - Compiling expr class ognl.ASTChain and root $BaseComponent_20 with toString:delegate.hasErrors
> DEBUG org.apache.tapestry.services.impl.HiveMindExpressionCompiler  - Compiling expr class ognl.ASTChain and root $BaseComponent_20 with toString:page.validationDelegate
> DEBUG org.apache.tapestry.bean.BeanProvider  - getBean(validationDelegate)
> DEBUG org.apache.tapestry.bean.BeanProvider  - Instantiating instance of org.apache.tapestry.valid.ValidationDelegate
> DEBUG org.apache.tapestry.bean.BeanProvider  - getBean(validationDelegate)
> DEBUG org.apache.tapestry.services.impl.HiveMindExpressionCompiler  - Getter Body: ==================================={ return ((caseTracker.pages.Login)(($BaseComponent_20)$2).getPage()).getValidationDelegate();}
> DEBUG org.apache.tapestry.bean.BeanProvider  - getBean(validationDelegate)
> DEBUG org.apache.tapestry.bean.BeanProvider  - getBean(validationDelegate)
> DEBUG org.apache.tapestry.services.impl.HiveMindExpressionCompiler  - Getter Body: ==================================={ return  ($w) (((org.apache.tapestry.valid.IValidationDelegate)(($BaseComponent_20)$2).getDelegate()).getHasErrors());}
> DEBUG org.apache.tapestry.engine.RequestCycle  - Set attribute org.mb.tapestry.base.IfValue to false
> 19563 [btpool0-2] DEBUG org.apache.tapestry.BaseComponent  - End render Login/$PageError
> However, when I go to the next page which embeds the PageError component, I get the following error:
> DEBUG org.apache.tapestry.BaseComponent  - Begin render AddClient/$PageError
> DEBUG org.apache.tapestry.engine.RequestCycle  - Removing attribute org.apache.tapestry.html.Shell
> DEBUG org.apache.tapestry.engine.AbstractEngine  - Uncaught exception
> org.apache.tapestry.BindingException: Unable to read OGNL expression '<parsed OGNL expression>' of $BaseComponent_20@b08fff3d[AddClient/$PageError]: Unable to read OGNL expression '<parsed OGNL expression>' of $BaseComponent_20@b08fff3d[AddClient/$PageError]: $AddClient_24 [context:/WEB-INF/PageError.html, line 3]
>         at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)
>         at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:113)
>         at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
>         at org.apache.tapestry.enhance.EnhanceUtils.toBoolean(EnhanceUtils.java:176)
>         at $IfBean_4.getCondition($IfBean_4.java)
>         at org.apache.tapestry.components.IfBean.evaluateCondition(IfBean.java:116)
>         at org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:70)
>         at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
>         at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
>         at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
>         at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:537)
>         at org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:39)
>         at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
>         at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:537)
>         at org.apache.tapestry.html.Body.renderComponent(Body.java:38)
>         at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
>         at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:537)
>         at org.apache.tapestry.html.Shell.renderComponent(Shell.java:126)
>         at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
>         at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
>         at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
>         at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
>         at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:182)
>         at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:237)
>         at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:397)
>         at org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:158)
>         at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)
>         at $ResponseRenderer_112ab1cb761.renderResponse($ResponseRenderer_112ab1cb761.java)
>         at org.apache.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:208)
>         at org.apache.tapestry.engine.AbstractEngine.handlePageRedirectException(AbstractEngine.java:336)
>         at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:252)
>         at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
>         at $WebRequestServicer_112ab1cb7bc.service($WebRequestServicer_112ab1cb7bc.java)
>         at com.javaforge.tapestry.tapernate.filter.TapernateFilter.service(TapernateFilter.java:81)
>         at $WebRequestServicerFilter_112ab1cb7ba.service($WebRequestServicerFilter_112ab1cb7ba.java)
>         at $WebRequestServicer_112ab1cb7be.service($WebRequestServicer_112ab1cb7be.java)
>         at $WebRequestServicer_112ab1cb7b6.service($WebRequestServicer_112ab1cb7b6.java)
>         at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
>         at $ServletRequestServicer_112ab1cb79c.service($ServletRequestServicer_112ab1cb79c.java)
>         at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
>         at $ServletRequestServicerFilter_112ab1cb798.service($ServletRequestServicerFilter_112ab1cb798.java)
>         at $ServletRequestServicer_112ab1cb79e.service($ServletRequestServicer_112ab1cb79e.java)
>         at org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
>         at $ServletRequestServicerFilter_112ab1cb796.service($ServletRequestServicerFilter_112ab1cb796.java)
>         at $ServletRequestServicer_112ab1cb79e.service($ServletRequestServicer_112ab1cb79e.java)
>         at org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
>         at $ServletRequestServicerFilter_112ab1cb79a.service($ServletRequestServicerFilter_112ab1cb79a.java)
>         at $ServletRequestServicer_112ab1cb79e.service($ServletRequestServicer_112ab1cb79e.java)
>         at $ServletRequestServicer_112ab1cb781.service($ServletRequestServicer_112ab1cb781.java)
>         at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
>         at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:104)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:747)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
>         at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:423)
>         at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:355)
>         at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226)
>         at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:567)
>         at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:147)
>         at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:126)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
>         at org.mortbay.jetty.Server.handle(Server.java:248)
>         at org.mortbay.jetty.HttpConnection.handlerRequest(HttpConnection.java:360)
>         at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:614)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:487)
>         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:197)
>         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:288)
>         at org.mortbay.jetty.nio.SelectChannelConnector$HttpChannelEndPoint.run(SelectChannelConnector.java:805)
>         at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
> Caused by: org.apache.hivemind.ApplicationRuntimeException: Unable to read OGNL
> expression '<parsed OGNL expression>' of $BaseComponent_20@b08fff3d[AddClient/$PageError]: Unable to read OGNL expression '<parsed OGNL expression>' of $BaseComponent_20@b08fff3d[AddClient/$PageError]: $AddClient_24 [context:/WEB-INF/PageError.jwc, line 8, column 72]
>         at org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:145)
>         at $ExpressionEvaluator_112ab1cb896.read($ExpressionEvaluator_112ab1cb896.java)
>         at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:128)
>         ... 74 more
> Caused by: org.apache.tapestry.BindingException: Unable to read OGNL expression'<parsed OGNL expression>' of $BaseComponent_20@b08fff3d[AddClient/$PageError]:$AddClient_24 [context:/WEB-INF/PageError.jwc, line 8, column 72]
>         at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)
>         at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:113)
>         at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
>         at $BaseComponent_20.getDelegate($BaseComponent_20.java)
>         at $ASTChain_112ab1cb8cf.get($ASTChain_112ab1cb8cf.java)
>         at org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:141)
>         ... 76 more
> Caused by: org.apache.hivemind.ApplicationRuntimeException: Unable to read OGNL
> expression '<parsed OGNL expression>' of $BaseComponent_20@b08fff3d[AddClient/$PageError]: $AddClient_24 [context:/WEB-INF/clients/AddClient.html, line 13]
>         at org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:145)
>         at $ExpressionEvaluator_112ab1cb896.read($ExpressionEvaluator_112ab1cb896.java)
>         at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:128)
>         ... 81 more
> Caused by: java.lang.ClassCastException: $AddClient_24
>         at $ASTChain_112ab1cb8d0.get($ASTChain_112ab1cb8d0.java)
>         at org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:141)
>         ... 83 more
> The error disappears when I set org.apache.tapestry.disable-caching to true.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org