Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.7
-
None
-
None
Description
I'm using the latest 2.7 snapshot and i get an exception when i use this expression:
@com.logical.portal.web.MenuModel@values().length
MenuModel is an Enum type. The expression is evaluated correctly anyway, i just get the error logged.
rg.apache.hivemind.ApplicationRuntimeException: Unable to add method java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class $ASTNotEq_11300da3c6c: [source error] incompatible array types
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:388)
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_11300da3c2f.getCompiledExpression($ExpressionCache_11300da3c2f.java)
at org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:141)
at org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:132)
at org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
at org.apache.tapestry.enhance.EnhanceUtils.toBoolean(EnhanceUtils.java:173)
at $IfBean_10.getCondition($IfBean_10.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:180)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:537)
at org.apache.tapestry.components.ForBean.renderComponent(ForBean.java:181)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:723)
at org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:180)
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:180)
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:180)
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:180)
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: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_11300da3b10.renderResponse($ResponseRenderer_11300da3b10.java)
at $ResponseRenderer_11300da3b0f.renderResponse($ResponseRenderer_11300da3b0f.java)
at org.apache.tapestry.engine.PageService.service(PageService.java:68)
at $IEngineService_11300da3b7d.service($IEngineService_11300da3b7d.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_11300da3b4e.service($WebRequestServicer_11300da3b4e.java)
at $WebRequestServicer_11300da3b4d.service($WebRequestServicer_11300da3b4d.java)
at $WebRequestServicer_11300da3b4a.service($WebRequestServicer_11300da3b4a.java)
at $WebRequestServicer_11300da3b49.service($WebRequestServicer_11300da3b49.java)
at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
at $ServletRequestServicer_11300da3b3c.service($ServletRequestServicer_11300da3b3c.java)
at $ServletRequestServicer_11300da3b3b.service($ServletRequestServicer_11300da3b3b.java)
at org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
at $ServletRequestServicerFilter_11300da3b38.service($ServletRequestServicerFilter_11300da3b38.java)
at $ServletRequestServicerFilter_11300da3b37.service($ServletRequestServicerFilter_11300da3b37.java)
at $ServletRequestServicer_11300da3b3d.service($ServletRequestServicer_11300da3b3d.java)
at org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
at $ServletRequestServicerFilter_11300da3b36.service($ServletRequestServicerFilter_11300da3b36.java)
at $ServletRequestServicerFilter_11300da3b35.service($ServletRequestServicerFilter_11300da3b35.java)
at $ServletRequestServicer_11300da3b3d.service($ServletRequestServicer_11300da3b3d.java)
at org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
at $ServletRequestServicerFilter_11300da3b3a.service($ServletRequestServicerFilter_11300da3b3a.java)
at $ServletRequestServicerFilter_11300da3b39.service($ServletRequestServicerFilter_11300da3b39.java)
at $ServletRequestServicer_11300da3b3d.service($ServletRequestServicer_11300da3b3d.java)
at $ServletRequestServicer_11300da3b30.service($ServletRequestServicer_11300da3b30.java)
at $ServletRequestServicer_11300da3b2f.service($ServletRequestServicer_11300da3b2f.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.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:230)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
at org.mortbay.jetty.Server.handle(Server.java:286)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:444)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:701)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:203)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:340)
at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
Caused by: javassist.CannotCompileException: [source error] incompatible array types
at javassist.CtBehavior.setBody(CtBehavior.java:347)
at javassist.CtBehavior.setBody(CtBehavior.java:316)
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:272)
... 85 more
Caused by: compile error: incompatible array types
at javassist.compiler.CodeGen.atBinExpr(CodeGen.java:960)
at javassist.compiler.ast.BinExpr.accept(BinExpr.java:40)
at javassist.compiler.CodeGen.compileOprands(CodeGen.java:1156)
at javassist.compiler.CodeGen.booleanExpr(CodeGen.java:1088)
at javassist.compiler.CodeGen.atBinExpr(CodeGen.java:971)
at javassist.compiler.ast.BinExpr.accept(BinExpr.java:40)
at javassist.compiler.JvstCodeGen.atCastToWrapper(JvstCodeGen.java:201)
at javassist.compiler.JvstCodeGen.atCastExpr(JvstCodeGen.java:171)
at javassist.compiler.ast.CastExpr.accept(CastExpr.java:54)
at javassist.compiler.CodeGen.compileExpr(CodeGen.java:223)
at javassist.compiler.CodeGen.atReturnStmnt2(CodeGen.java:591)
at javassist.compiler.JvstCodeGen.atReturnStmnt(JvstCodeGen.java:424)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:356)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:344)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:285)
at javassist.compiler.Javac.compileBody(Javac.java:212)
at javassist.CtBehavior.setBody(CtBehavior.java:341)
... 87 more