Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
2.7
-
None
-
None
-
OGNL 2.7, Tapestry 4.1.2-SNAPSHOT, Javassist 3.4GA
Description
Have following OGNL:
<binding name="items">{
new org.bookie.web.components.MenuItem('Home', 'Main',
{ new org.bookie.web.components.MenuItem('Help', 'Help'), new org.bookie.web.components.MenuItem('Contact', 'Contact') }
),
new org.bookie.web.components.MenuItem('UserList', getMessages().getMessage('menu.members')),
new org.bookie.web.components.MenuItem('account/BetSlipList', getMessages().getMessage('menu.account'),
{ new org.bookie.web.components.MenuItem('account/BetSlipList', 'My Bets'), new org.bookie.web.components.MenuItem('account/TransactionList', 'My Transactions') }
),
new org.bookie.web.components.MenuItem('About', 'About'),
new org.bookie.web.components.MenuItem('admin/Admin', getMessages().getMessage('menu.admin'),
{ new org.bookie.web.components.MenuItem('admin/AddEvent', 'Add event'), new org.bookie.web.components.MenuItem('admin/AddResult', 'Add result') }
)}</binding>
Have following exception:
java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
Stack Trace:
- ognl.ASTList33320390Accessor.get(ASTList33320390Accessor.java)
- org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:123)
- $ExpressionEvaluator_11190606ee2.read($ExpressionEvaluator_11190606ee2.java)
- org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:126)
- org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:111)
- org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
- $Menu_60.getItems($Menu_60.java)
- org.bookie.web.components.Menu.getMenuItems(Menu.java:36)
- sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
- sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
- java.lang.reflect.Method.invoke(Unknown Source)
- ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:631)
- ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:1044)
- ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:60)
- ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:134)
- ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1755)
- ognl.ASTProperty.getValueBody(ASTProperty.java:109)
- ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:200)
- ognl.SimpleNode.getValue(SimpleNode.java:244)
- ognl.Ognl.getValue(Ognl.java:376)
- ognl.Ognl.getValue(Ognl.java:340)
- org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:207)
- ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:388)
- ognl.Ognl.compileExpression(Ognl.java:123)
- org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:129)
- org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:91)
- $ExpressionCache_11190606ee4.getCompiledExpression($ExpressionCache_11190606ee4.java)
- org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:120)
- org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:111)
- org.apache.tapestry.components.ForBean.evaluateSourceIterator(ForBean.java:693)
- org.apache.tapestry.components.ForBean.getData(ForBean.java:326)
- org.apache.tapestry.components.ForBean.renderComponent(ForBean.java:130)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
- org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
- org.apache.tapestry.components.Any.renderComponent(Any.java:53)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
- org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
- org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
- org.apache.tapestry.html.Body.renderComponent(Body.java:38)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
- org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:525)
- org.apache.tapestry.html.Shell.renderComponent(Shell.java:64)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
- org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
- org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
- org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:712)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:182)
- org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:237)
- org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:397)
- org.apache.tapestry.services.impl.DefaultResponseBuilder.renderResponse(DefaultResponseBuilder.java:158)
- org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse(ResponseRendererImpl.java:33)
- $ResponseRenderer_11190606dad.renderResponse($ResponseRenderer_11190606dad.java)
- org.apache.tapestry.engine.HomeService.service(HomeService.java:68)
- $IEngineService_11190606e2b.service($IEngineService_11190606e2b.java)
- org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
- org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:246)
- org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
- $WebRequestServicer_11190606e03.service($WebRequestServicer_11190606e03.java)
- org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:54)
- $WebRequestServicerFilter_11190606e05.service($WebRequestServicerFilter_11190606e05.java)
- $WebRequestServicer_11190606e07.service($WebRequestServicer_11190606e07.java)
- $WebRequestServicer_11190606dff.service($WebRequestServicer_11190606dff.java)
- org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
- $ServletRequestServicer_11190606de5.service($ServletRequestServicer_11190606de5.java)
- org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
- $ServletRequestServicerFilter_11190606de1.service($ServletRequestServicerFilter_11190606de1.java)
- $ServletRequestServicer_11190606de7.service($ServletRequestServicer_11190606de7.java)
- org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
- $ServletRequestServicerFilter_11190606ddf.service($ServletRequestServicerFilter_11190606ddf.java)
- $ServletRequestServicer_11190606de7.service($ServletRequestServicer_11190606de7.java)
- org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
- $ServletRequestServicerFilter_11190606de3.service($ServletRequestServicerFilter_11190606de3.java)
- $ServletRequestServicer_11190606de7.service($ServletRequestServicer_11190606de7.java)
- $ServletRequestServicer_11190606dd9.service($ServletRequestServicer_11190606dd9.java)
- org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
- org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:104)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
- org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
- org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
- org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
- org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
- org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
- org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
- org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
- org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
- org.mortbay.jetty.Server.handle(Server.java:303)
- org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
- org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:721)
- org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:509)
- org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
- org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
- org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
- org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
Before following exceptions:
[ +/- ] Exception: Unable to parse OGNL expression 'menuItems': Error compiling expression on object $Menu_60@662afa1[Home/border.menu] with expression node menuItems getter body: null setter body: null
org.apache.tapestry.BindingException
Unable to parse OGNL expression 'menuItems': Error compiling expression on object $Menu_60@662afa1[Home/border.menu] with expression node menuItems getter body: null setter body: null
binding: ExpressionBinding[Home/border.menu menuItems]
location: context:/WEB-INF/Menu.jwc, line 14, column 47
9 <parameter name="defaultItem" required="yes"/>
10
11 <property name="subItem"/>
12
13 <component id="loop" type="For">
14 <binding name="source" value="menuItems"/>
15 <binding name="value" value="item"/>
16 </component>
17
18 </component-specification>
[ +/- ] Exception: Unable to parse OGNL expression 'menuItems': Error compiling expression on object $Menu_60@662afa1[Home/border.menu] with expression node menuItems getter body: null setter body: null
org.apache.hivemind.ApplicationRuntimeException
Unable to parse OGNL expression 'menuItems': Error compiling expression on object $Menu_60@662afa1[Home/border.menu] with expression node menuItems getter body: null setter body: null
[ +/- ] Exception: Error compiling expression on object $Menu_60@662afa1[Home/border.menu] with expression node menuItems getter body: null setter body: null
org.apache.hivemind.ApplicationRuntimeException
Error compiling expression on object $Menu_60@662afa1[Home/border.menu] with expression node menuItems getter body: null setter body: null
[ +/- ] Exception: menuItems
ognl.OgnlException
menuItems
[ +/- ] Exception: Unable to read OGNL expression '<parsed OGNL expression>' of $Border_58@b18e8941[Home/border]: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
org.apache.tapestry.BindingException
Unable to read OGNL expression '<parsed OGNL expression>' of $Border_58@b18e8941[Home/border]: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
binding: ExpressionBinding[Home/border { new org.bookie.web.components.MenuItem('Home', 'Main',
{ new org.bookie.web.components.MenuItem('Help', 'Help'), new org.bookie.web.components.MenuItem('Contact', 'Contact') }), new org.bookie.web.components.MenuItem('UserList', getMessages().getMessage('menu.members')), new org.bookie.web.components.MenuItem('account/BetSlipList', getMessages().getMessage('menu.account'),
{ new org.bookie.web.components.MenuItem('account/BetSlipList', 'My Bets'), new org.bookie.web.components.MenuItem('account/TransactionList', 'My Transactions') }), new org.bookie.web.components.MenuItem('About', 'About'), new org.bookie.web.components.MenuItem('admin/Admin', getMessages().getMessage('menu.admin'),
{ new org.bookie.web.components.MenuItem('admin/AddEvent', 'Add event'), new org.bookie.web.components.MenuItem('admin/AddResult', 'Add result') })}]
location: context:/WEB-INF/Border.jwc, line 38, column 25
33 <binding name="listener" value="components.login.registerListener"/>
34 </component>
35
36 <!-- Menu component -->
37 <component id="menu" type="Menu">
38 <binding name="items">{
39 new org.bookie.web.components.MenuItem('Home', 'Main',
40
{ new org.bookie.web.components.MenuItem('Help', 'Help'), 41 new org.bookie.web.components.MenuItem('Contact', 'Contact') 42 }),
43 new org.bookie.web.components.MenuItem('UserList', getMessages().getMessage('menu.members')),
[ +/- ] Exception: Unable to read OGNL expression '<parsed OGNL expression>' of $Border_58@b18e8941[Home/border]: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
org.apache.hivemind.ApplicationRuntimeException
Unable to read OGNL expression '<parsed OGNL expression>' of $Border_58@b18e8941[Home/border]: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
component: $Border_58@b18e8941[Home/border]
location: context:/WEB-INF/Home.page, line 14, column 39
9
10 <property name="menuListener" initial-value="component:betList"/>
11
12 <property name="cat"/>
13
14 <component id="border" type="Border">
15 <binding name="title" value="message:bookie.main.title"/>
16 <binding name="rightBlock" value="component:slip"/>
17 <binding name="menuBlock" value="component:menu"/>
18 </component>
19
[ +/- ] Exception: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
Sources are available in http://code.google.com/p/bookie