History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: OGNL-50
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: Jesse Kuhnert
Reporter: Ben Dotte
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
OGNL

Nullcheck with && and ! fails

Created: 20/Apr/07 12:19 PM   Updated: 24/Apr/07 10:37 AM
Component/s: ExpressionCompiler
Affects Version/s: 2.7
Fix Version/s: 2.7

Environment: Tapestry 4.1.2 snapshot from 4-20, OGNL 2.7 snapshot from 4-20, WinXP, Firefox 2


 Description  « Hide
Failsafe catches this and the page renders fine.

.html:
<span jwcid="@Insert" value="ognl:testString != null && !false" />

.java:
public String getTestString()
{
return "blah";
}

The stack rendered to the console is:

org.apache.hivemind.ApplicationRuntimeException: Unable to add method java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class ognl.ASTAnd1379260Accessor: [source error] : is missing
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278)
at org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:161)
at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:387)
at ognl.Ognl.compileExpression(Ognl.java:123)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:129)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:91)
at $ExpressionCache_1120ffe0398.getCompiledExpression($ExpressionCache_1120ffe0398.java)
at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:120)
at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:111)
at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
at $Insert_234.getValue($Insert_234.java)
at org.apache.tapestry.components.Insert.renderComponent(Insert.java:48)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:96)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
at collective.ui.components.CollectiveComponent.renderComponent(CollectiveComponent.java:70)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:41)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
at collective.ui.components.CollectiveComponent.renderComponent(CollectiveComponent.java:70)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.components.Any.renderComponent(Any.java:53)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.html.Body.renderComponent(Body.java:38)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.html.Shell.renderComponent(Shell.java:64)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
at collective.ui.components.CollectiveComponent.renderComponent(CollectiveComponent.java:70)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
at org.apache.tapestry.components.ElseBean.renderComponent(ElseBean.java:47)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
at collective.ui.components.CollectiveComponent.renderComponent(CollectiveComponent.java:70)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
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_1120ffe0227.renderResponse($ResponseRenderer_1120ffe0227.java)
at org.apache.tapestry.engine.PageService.service(PageService.java:68)
at $IEngineService_1120ffe02ba.service($IEngineService_1120ffe02ba.java)
at org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:246)
at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
at $WebRequestServicer_1120ffe0297.service($WebRequestServicer_1120ffe0297.java)
at org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:54)
at $WebRequestServicerFilter_1120ffe0299.service($WebRequestServicerFilter_1120ffe0299.java)
at $WebRequestServicer_1120ffe029b.service($WebRequestServicer_1120ffe029b.java)
at $WebRequestServicer_1120ffe0293.service($WebRequestServicer_1120ffe0293.java)
at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
at $ServletRequestServicer_1120ffe0275.service($ServletRequestServicer_1120ffe0275.java)
at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
at $ServletRequestServicerFilter_1120ffe0271.service($ServletRequestServicerFilter_1120ffe0271.java)
at $ServletRequestServicer_1120ffe0277.service($ServletRequestServicer_1120ffe0277.java)
at collective.ui.custom.HibernateFilter.service(HibernateFilter.java:37)
at $ServletRequestServicerFilter_1120ffe026f.service($ServletRequestServicerFilter_1120ffe026f.java)
at $ServletRequestServicer_1120ffe0277.service($ServletRequestServicer_1120ffe0277.java)
at collective.ui.custom.LuceneIndexFilter.service(LuceneIndexFilter.java:24)
at $ServletRequestServicerFilter_1120ffe026d.service($ServletRequestServicerFilter_1120ffe026d.java)
at $ServletRequestServicer_1120ffe0277.service($ServletRequestServicer_1120ffe0277.java)
at org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
at $ServletRequestServicerFilter_1120ffe026b.service($ServletRequestServicerFilter_1120ffe026b.java)
at $ServletRequestServicer_1120ffe0277.service($ServletRequestServicer_1120ffe0277.java)
at org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
at $ServletRequestServicerFilter_1120ffe0273.service($ServletRequestServicerFilter_1120ffe0273.java)
at $ServletRequestServicer_1120ffe0277.service($ServletRequestServicer_1120ffe0277.java)
at $ServletRequestServicer_1120ffe0264.service($ServletRequestServicer_1120ffe0264.java)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
at collective.ui.CollectiveApplicationServlet.doService(CollectiveApplicationServlet.java:71)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:104)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:832)
at collective.servlet.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:32)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:823)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:556)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1563)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:623)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1515)
at org.mortbay.http.HttpServer.service(HttpServer.java:956)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:814)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:981)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:831)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
Caused by: javassist.CannotCompileException: [source error] : is missing
at javassist.CtBehavior.setBody(CtBehavior.java:347)
at javassist.CtBehavior.setBody(CtBehavior.java:316)
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:272)
... 122 more
Caused by: compile error: : is missing
at javassist.compiler.Parser.parseConditionalExpr(Parser.java:723)
at javassist.compiler.Parser.parseExpression(Parser.java:698)
at javassist.compiler.Parser.parseReturn(Parser.java:506)
at javassist.compiler.Parser.parseStatement(Parser.java:268)
at javassist.compiler.Parser.parseBlock(Parser.java:288)
at javassist.compiler.Parser.parseStatement(Parser.java:242)
at javassist.compiler.Javac.compileBody(Javac.java:203)
at javassist.CtBehavior.setBody(CtBehavior.java:341)
... 124 more

 All   Comments   Change History      Sort Order:
There are no comments yet on this issue.