If I have a tapestry component like below and I set the double values before render, I get an exception report in the log, even though the calculation of "net" is correct. If I change it from subtraction to addition, the error goes away. If I change it to multiplication, I get the error again. In each case, the calculation is always correct.
<component id="net" type="Insert">
<binding name="value" value="ognl:budget - timeBilled"/>
<binding name="format" value="ognl:priceFormat"/>
</component>
--
@InitialValue("ognl:0d")
public abstract double getBudget();
public abstract void setBudget(double budget);
@InitialValue("ognl:0d")
public abstract double getTimeBilled();
public abstract void setTimeBilled(double timeBilled);
--
2007-07-19 16:20:28,535 ERROR HiveMindExpressionCompiler.java - Error generating OGNL getter for expression budget - timeBilled with root $
ProjectAccounts_42@278847a1[ProjectDetails/projectAccounts] and body:
{ return ($w) ((($ProjectAccounts_42)$2).getBudget()d - (($ProjectAccounts_42)$2).getTimeBilled()d);}
org.apache.hivemind.ApplicationRuntimeException: Unable to add method java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class $ASTSubtract_113df478c9d: [source error] ) is missing
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278)
at org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:172)
at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:524)
at ognl.Ognl.compileExpression(Ognl.java:141)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115)
at $ExpressionCache_113df478be7.getCompiledExpression($ExpressionCache_113df478be7.java)
at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)
at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125)
at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
at $Insert_13.getValue($Insert_13.java)
at org.apache.tapestry.components.Insert.renderComponent(Insert.java:48)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:94)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:39)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.html.Body.renderComponent(Body.java:38)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.html.Shell.renderComponent(Shell.java:124)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:178)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:249)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:397)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:152)
at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)
at $ResponseRenderer_113df478ac9.renderResponse($ResponseRenderer_113df478ac9.java)
at $ResponseRenderer_113df478ac8.renderResponse($ResponseRenderer_113df478ac8.java)
at org.apache.tapestry.engine.DirectService.service(DirectService.java:147)
at $IEngineService_113df478b3c.service($IEngineService_113df478b3c.java)
at org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(EngineServiceInnerProxy.java:77)
at org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:237)
at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
at $WebRequestServicer_113df478b13.service($WebRequestServicer_113df478b13.java)
at $WebRequestServicer_113df478b12.service($WebRequestServicer_113df478b12.java)
at org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:54)
at $WebRequestServicerFilter_113df478b15.service($WebRequestServicerFilter_113df478b15.java)
at $WebRequestServicerFilter_113df478b14.service($WebRequestServicerFilter_113df478b14.java)
at $WebRequestServicer_113df478b16.service($WebRequestServicer_113df478b16.java)
at $WebRequestServicer_113df478b0f.service($WebRequestServicer_113df478b0f.java)
at $WebRequestServicer_113df478b0e.service($WebRequestServicer_113df478b0e.java)
at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
at $ServletRequestServicer_113df478af5.service($ServletRequestServicer_113df478af5.java)
at $ServletRequestServicer_113df478af4.service($ServletRequestServicer_113df478af4.java)
at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
at $ServletRequestServicerFilter_113df478af1.service($ServletRequestServicerFilter_113df478af1.java)
at $ServletRequestServicerFilter_113df478af0.service($ServletRequestServicerFilter_113df478af0.java)
at $ServletRequestServicer_113df478af6.service($ServletRequestServicer_113df478af6.java)
at org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
at $ServletRequestServicerFilter_113df478aef.service($ServletRequestServicerFilter_113df478aef.java)
at $ServletRequestServicerFilter_113df478aee.service($ServletRequestServicerFilter_113df478aee.java)
at $ServletRequestServicer_113df478af6.service($ServletRequestServicer_113df478af6.java)
at org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
at $ServletRequestServicerFilter_113df478af3.service($ServletRequestServicerFilter_113df478af3.java)
at $ServletRequestServicerFilter_113df478af2.service($ServletRequestServicerFilter_113df478af2.java)
at $ServletRequestServicer_113df478af6.service($ServletRequestServicer_113df478af6.java)
at $ServletRequestServicer_113df478ae9.service($ServletRequestServicer_113df478ae9.java)
at $ServletRequestServicer_113df478ae8.service($ServletRequestServicer_113df478ae8.java)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:126)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:613)
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)
... 93 more
Caused by: compile error: ) is missing
at javassist.compiler.Parser.parsePrimaryExpr(Parser.java:1247)
at javassist.compiler.Parser.parsePostfix(Parser.java:1029)
at javassist.compiler.Parser.parseCast(Parser.java:920)
at javassist.compiler.Parser.parseUnaryExpr(Parser.java:885)
at javassist.compiler.Parser.parseCast(Parser.java:917)
at javassist.compiler.Parser.parseUnaryExpr(Parser.java:885)
at javassist.compiler.Parser.parseBinaryExpr(Parser.java:774)
at javassist.compiler.Parser.parseConditionalExpr(Parser.java:718)
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)
... 95 more
org.apache.hivemind.ApplicationRuntimeException: Unable to add method java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class $ASTSubtract_113df478c9d: [source error] ) is missing
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278)
at org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:172)
at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:524)
at ognl.Ognl.compileExpression(Ognl.java:141)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115)
at $ExpressionCache_113df478be7.getCompiledExpression($ExpressionCache_113df478be7.java)
at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:134)
at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:125)
at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
at $Insert_13.getValue($Insert_13.java)
at org.apache.tapestry.components.Insert.renderComponent(Insert.java:48)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:94)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.components.RenderBody.renderComponent(RenderBody.java:39)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.html.Body.renderComponent(Body.java:38)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:539)
at org.apache.tapestry.html.Shell.renderComponent(Shell.java:124)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:107)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:725)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:178)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:249)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:397)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:152)
at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)
at $ResponseRenderer_113df478ac9.renderResponse($ResponseRenderer_113df478ac9.java)
at $ResponseRenderer_113df478ac8.renderResponse($ResponseRenderer_113df478ac8.java)
at org.apache.tapestry.engine.DirectService.service(DirectService.java:147)
at $IEngineService_113df478b3c.service($IEngineService_113df478b3c.java)
at org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(EngineServiceInnerProxy.java:77)
at org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:237)
at org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
at $WebRequestServicer_113df478b13.service($WebRequestServicer_113df478b13.java)
at $WebRequestServicer_113df478b12.service($WebRequestServicer_113df478b12.java)
at org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:54)
at $WebRequestServicerFilter_113df478b15.service($WebRequestServicerFilter_113df478b15.java)
at $WebRequestServicerFilter_113df478b14.service($WebRequestServicerFilter_113df478b14.java)
at $WebRequestServicer_113df478b16.service($WebRequestServicer_113df478b16.java)
at $WebRequestServicer_113df478b0f.service($WebRequestServicer_113df478b0f.java)
at $WebRequestServicer_113df478b0e.service($WebRequestServicer_113df478b0e.java)
at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
at $ServletRequestServicer_113df478af5.service($ServletRequestServicer_113df478af5.java)
at $ServletRequestServicer_113df478af4.service($ServletRequestServicer_113df478af4.java)
at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
at $ServletRequestServicerFilter_113df478af1.service($ServletRequestServicerFilter_113df478af1.java)
at $ServletRequestServicerFilter_113df478af0.service($ServletRequestServicerFilter_113df478af0.java)
at $ServletRequestServicer_113df478af6.service($ServletRequestServicer_113df478af6.java)
at org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
at $ServletRequestServicerFilter_113df478aef.service($ServletRequestServicerFilter_113df478aef.java)
at $ServletRequestServicerFilter_113df478aee.service($ServletRequestServicerFilter_113df478aee.java)
at $ServletRequestServicer_113df478af6.service($ServletRequestServicer_113df478af6.java)
at org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
at $ServletRequestServicerFilter_113df478af3.service($ServletRequestServicerFilter_113df478af3.java)
at $ServletRequestServicerFilter_113df478af2.service($ServletRequestServicerFilter_113df478af2.java)
at $ServletRequestServicer_113df478af6.service($ServletRequestServicer_113df478af6.java)
at $ServletRequestServicer_113df478ae9.service($ServletRequestServicer_113df478ae9.java)
at $ServletRequestServicer_113df478ae8.service($ServletRequestServicer_113df478ae8.java)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:126)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:613)
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)
... 93 more
Caused by: compile error: ) is missing
at javassist.compiler.Parser.parsePrimaryExpr(Parser.java:1247)
at javassist.compiler.Parser.parsePostfix(Parser.java:1029)
at javassist.compiler.Parser.parseCast(Parser.java:920)
at javassist.compiler.Parser.parseUnaryExpr(Parser.java:885)
at javassist.compiler.Parser.parseCast(Parser.java:917)
at javassist.compiler.Parser.parseUnaryExpr(Parser.java:885)
at javassist.compiler.Parser.parseBinaryExpr(Parser.java:774)
at javassist.compiler.Parser.parseConditionalExpr(Parser.java:718)
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)
... 95 more