Uploaded image for project: 'Commons OGNL (Dormant)'
  1. Commons OGNL (Dormant)
  2. OGNL-111

Cannot operate expressions on overridden blocks

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Incomplete
    • 2.7
    • None
    • ExpressionCompiler
    • None
    • Any - but noticed in a Tapestry application (trailsframework.org) with all OGNL expressions working on pre-2.7 OGNL version.

    Description

      After upgrading to 2.7.1-SNAPSHOT (just a few moments ago), using compiled expressions, noticed consistent OgnlExceptions with message "source is null" from OgnlRuntime.getProperty when attempting to de-reference a property that should span Block component.

      Here is my template...

      <span jwcid="$content$">

      <table jwcid="table">

      <div jwcid="linkColumnValue <at> Block">

      <a jwcid="editLink <at> EditLink" model="ognl:object" href="#">

      <span jwcid="linkInsert <at> Insert"

      value="ognl:objectthis.linkProperty"/></a>

      </div>

      <div jwcid="blobColumnValue <at> Block">

      <span jwcid=" <at> TrailsDownload"

      propertyDescriptor="ognl:column.propertyDescriptor"

      model="ognl:object"

      bytes="ognl:objectthis.column.propertyDescriptor.name"

      />

      </div>

      </table>

      </span>

      This is the problem component... blobColumnValue <at> Block

      This is the problem line propertyDescriptor="ognl:column.propertyDescriptor"

      stack trace follows...

      An exception has occurred.

      You may continue by restarting the session.

      [ +/- ] Exception:

      Unable to parse OGNL expression 'blobDescriptorExtension.renderType.image':

      blobDescriptorExtension org.apache.tapestry.BindingException

      Unable to parse OGNL expression 'blobDescriptorExtension.renderType.image':

      blobDescriptorExtension

      binding: ExpressionBinding[DefaultList/$ObjectTable.$TrailsDownload

      blobDescriptorExtension.renderType.image] location:

      classpath:/org/trails/component/blob/TrailsDownload.html, line 2

      1 <span jwcid="$content$">

      2 <span jwcid=" <at> If"

      condition="ognl:blobDescriptorExtension.renderType.image">

      3 <a jwcid=" <at> ServiceLink" service="BlobService"

      parameters="ognl:byteArrayAsset">

      4 <img jwcid=" <at> MimedImage"

      5 propertyDescriptor="ognl:propertyDescriptor"

      6 model="ognl:model"

      7 image="ognl:byteArrayAsset"

      [ +/- ] Exception:

      Unable to parse OGNL expression 'blobDescriptorExtension.renderType.image':

      blobDescriptorExtension org.apache.hivemind.ApplicationRuntimeException

      Unable to parse OGNL expression 'blobDescriptorExtension.renderType.image':

      blobDescriptorExtension

      [ +/- ] Exception:

      blobDescriptorExtension ognl.OgnlException

      blobDescriptorExtension

      [ +/- ] Exception:

      Unable to parse OGNL expression

      'objectthis.column.propertyDescriptor.name': source is null for

      getProperty(null, "propertyDescriptor") org.apache.tapestry.BindingException

      Unable to parse OGNL expression

      'objectthis.column.propertyDescriptor.name': source is null for

      getProperty(null, "propertyDescriptor")

      binding: ExpressionBinding[DefaultList/$ObjectTable

      objectthis.column.propertyDescriptor.name] location:

      classpath:/org/trails/component/ObjectTable.html, line 11

      6 <span jwcid="linkInsert <at> Insert"

      7 value="ognl:objectthis.linkProperty"/></a>

      8 </div>

      9

      10 <div jwcid="blobColumnValue <at> Block">

      11 <span jwcid=" <at> TrailsDownload"

      12 propertyDescriptor="ognl:objectthis.column.propertyDescriptor.name"

      13 model="ognl:object"

      14 bytes="ognl:objectthis.column.propertyDescriptor.name"

      15 />

      16 </div>

      [ +/- ] Exception:

      Unable to parse OGNL expression

      'objectthis.column.propertyDescriptor.name': source is null for

      getProperty(null, "propertyDescriptor")

      org.apache.hivemind.ApplicationRuntimeException

      Unable to parse OGNL expression

      'objectthis.column.propertyDescriptor.name': source is null for

      getProperty(null, "propertyDescriptor")

      [ +/- ] Exception:

      source is null for getProperty(null, "propertyDescriptor")

      ognl.OgnlException

      source is null for getProperty(null, "propertyDescriptor")

      Stack Trace:

      ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1908)

      ognl.ASTProperty.getValueBody(ASTProperty.java:109)

      ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:200)

      ognl.SimpleNode.getValue(SimpleNode.java:244)

      ognl.ASTChain.getValueBody(ASTChain.java:137)

      ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:200)

      ognl.SimpleNode.getValue(SimpleNode.java:244)

      ognl.ASTProperty.getProperty(ASTProperty.java:99)

      ognl.ASTProperty.getValueBody(ASTProperty.java:107)

      ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:200)

      ognl.SimpleNode.getValue(SimpleNode.java:244)

      ognl.ASTChain.getValueBody(ASTChain.java:137)

      ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:200)

      ognl.SimpleNode.getValue(SimpleNode.java:244)

      ognl.Ognl.getValue(Ognl.java:494) ognl.Ognl.getValue(Ognl.java:458)

      org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:148)

      ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:524)

      ognl.Ognl.compileExpression(Ognl.java:141)

      org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152)

      org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115)

      $ExpressionCache_113f530338c.getCompiledExpression($ExpressionCache_113f530338c.java)

      org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)

      org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125)

      org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)

      $TrailsDownload_34.getPropertyDescriptor($TrailsDownload_34.java)

      org.trails.component.blob.TrailsDownload.getBlobDescriptorExtension(TrailsDownload.java:53)

      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

      java.lang.reflect.Method.invoke(Method.java:585)

      ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:769)

      ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:1193)

      ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:60)

      ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:142)

      ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1914)

      ognl.ASTProperty.getValueBody(ASTProperty.java:109)

      ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:200)

      ognl.SimpleNode.getValue(SimpleNode.java:244)

      ognl.ASTChain.getValueBody(ASTChain.java:137)

      ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:200)

      ognl.SimpleNode.getValue(SimpleNode.java:244)

      ognl.Ognl.getValue(Ognl.java:494) ognl.Ognl.getValue(Ognl.java:458)

      org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:148)

      ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:524)

      ognl.Ognl.compileExpression(Ognl.java:141)

      org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152)

      org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115)

      $ExpressionCache_113f530338c.getCompiledExpression($ExpressionCache_113f530338c.java)

      org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)

      org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125)

      org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)

      org.apache.tapestry.enhance.EnhanceUtils.toBoolean(EnhanceUtils.java:173)

      $IfBean_7.getCondition($IfBean_7.java)

      org.apache.tapestry.components.IfBean.evaluateCondition(IfBean.java:128)

      org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:66)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.BlockRenderer.render(BlockRenderer.java:77)

      org.apache.tapestry.components.Delegator.renderComponent(Delegator.java:41)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.Any.renderComponent(Any.java:44)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.ForBean.renderComponent(ForBean.java:181)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:39)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.Any.renderComponent(Any.java:44)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.ForBean.renderComponent(ForBean.java:181)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.contrib.table.components.TableRows.renderComponent(TableRows.java:136)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.Any.renderComponent(Any.java:44)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:39)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.Any.renderComponent(Any.java:44)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.contrib.table.components.TableView.renderComponent(TableView.java:511)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:39)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.apache.tapestry.html.Body.renderComponent(Body.java:38)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)

      org.trails.demo.components.CustomHead.renderComponent(CustomHead.java:205)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)

      org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)

      org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:178)

      org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:249)

      org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:397)

      org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:152)

      org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)

      $ResponseRenderer_113f530325e.renderResponse($ResponseRenderer_113f530325e.java)

      org.apache.tapestry.engine.ExternalService.service(ExternalService.java:163)

      $IEngineService_113f53032dd.service($IEngineService_113f53032dd.java)

      org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)

      org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:237)

      org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)

      $WebRequestServicer_113f53032aa.service($WebRequestServicer_113f53032aa.java)

      org.trails.i18n.LocaleFilter.service(LocaleFilter.java:26)

      $WebRequestServicerFilter_113f53032a8.service($WebRequestServicerFilter_113f53032a8.java)

      $WebRequestServicer_113f53032ac.service($WebRequestServicer_113f53032ac.java)

      $WebRequestServicer_113f53032a4.service($WebRequestServicer_113f53032a4.java)

      org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)

      $ServletRequestServicer_113f530328a.service($ServletRequestServicer_113f530328a.java)

      org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)

      $ServletRequestServicerFilter_113f5303286.service($ServletRequestServicerFilter_113f5303286.java)

      $ServletRequestServicer_113f530328c.service($ServletRequestServicer_113f530328c.java)

      org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)

      $ServletRequestServicerFilter_113f5303284.service($ServletRequestServicerFilter_113f5303284.java)

      $ServletRequestServicer_113f530328c.service($ServletRequestServicer_113f530328c.java)

      org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)

      $ServletRequestServicerFilter_113f5303288.service($ServletRequestServicerFilter_113f5303288.java)

      $ServletRequestServicer_113f530328c.service($ServletRequestServicer_113f530328c.java)

      $ServletRequestServicer_113f530327e.service($ServletRequestServicer_113f530327e.java)

      org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:126)

      org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:103)

      javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

      javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

      org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)

      org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1074)

      org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

      org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

      org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)

      org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)

      org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)

      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

      org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)

      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

      org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)

      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

      org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)

      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

      org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:229)

      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

      org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:286)

      org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)

      org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)

      org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)

      org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)

      org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)

      org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)

      org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

      org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)

      org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)

      org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)

      org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

      org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)

      org.mortbay.jetty.Server.handle(Server.java:285)

      org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)

      org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)

      org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)

      org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)

      org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)

      org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)

      org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

      Attachments

        Activity

          People

            jkuhnert Jesse Kuhnert
            nhhockeyplayer Kenneth William
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: