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

Key: OGNL-27
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Jesse Kuhnert
Reporter: Renat Zubairov
Votes: 0
Watchers: 0
Operations

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

Bug in new version of OGNL

Created: 26/Mar/07 05:39 PM   Updated: 01/Apr/07 05:43 PM
Component/s: None
Affects Version/s: 2.7
Fix Version/s: 2.7

Environment: OGNL 2.7, Tapestry 4.1.2-SNAPSHOT, Javassist 3.4GA


 Description  « Hide
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

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