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

Key: OGNL-10
Type: Bug Bug
Status: Resolved Resolved
Resolution: Cannot Reproduce
Priority: Major Major
Assignee: Jesse Kuhnert
Reporter: Andreas Andreou
Votes: 0
Watchers: 0
Operations

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

Calling methods with parameters containing more calls ?

Created: 07/Mar/07 11:27 PM   Updated: 18/Mar/07 07:07 PM
Component/s: ExpressionCompiler
Affects Version/s: 2.7
Fix Version/s: 2.7

Environment: ognl-2.7-20070303-020139-5


 Description  « Hide
Not sure if the title is correct but ...

Trying to rewrite OGNL-9 i add in the .java
    @Message("page-title")
    public abstract String getTitle(int partnersCount);

and use any of the expressions
   ognl:getTitle(partners.size)
   ognl:getTitle(partners.size())
   ognl:getTitle(getPartners().size())
   ognl:getTitle(getPartners().size)

BTW, the .java contains a getPartners() method that returns a collection

In the first case I get
Error compiling expression on object $OurPartners_47@3c1[OurPartners] with expression node getTitle(partners.size) getter body: null setter body: nulljava.lang.ArrayIndexOutOfBoundsException: 0
and in the others
Error compiling expression on object $NonflowBorder_156@ea72b4a1[OurPartners/Border] with expression node title getter body: null setter body: nulltitle

They all produce the same stacktrace:

org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:258)
ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:384)
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_1112ff335b1.getCompiledExpression($ExpressionCache_1112ff335b1.java)
org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:121)
org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:112)
org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
$Border_22.getTitle($NonflowBorder_22.java)
ognl.ASTProperty4142218Accessor.get(ASTProperty4142218Accessor.java)
org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:131)
$ExpressionEvaluator_1112ff335af.read($ExpressionEvaluator_1112ff335af.java)
org.apache.tapestry.binding.ExpressionBinding.resolveExpression(ExpressionBinding.java:127)
org.apache.tapestry.binding.ExpressionBinding.getObject(ExpressionBinding.java:112)
org.apache.tapestry.binding.AbstractBinding.getObject(AbstractBinding.java:84)
$Insert_6.getValue($Insert_6.java)
org.apache.tapestry.components.Insert.renderComponent(Insert.java:48)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:708)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:521)
org.apache.tapestry.html.Body.renderComponent(Body.java:38)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:708)

 All   Comments   Change History      Sort Order:
Jesse Kuhnert - [11/Mar/07 03:31 PM ]
I wasn't able to re-produce this issue, maybe I just need a more specific object structure?

I used this test case:

http://svn.opensymphony.com/svn/ognl/trunk/src/test/java/org/ognl/test/IndexedPropertyTest.java

and this object:

http://svn.opensymphony.com/svn/ognl/trunk/src/test/java/org/ognl/test/objects/Indexed.java

Jesse Kuhnert - [12/Mar/07 05:34 PM ]
Resolving as not re-produceable for now as I haven't heard anything.

Andreas Andreou - [18/Mar/07 06:42 PM ]
Sorry, i thought i'd get an email or something upon each change in this issue - but i didn't, so
I didn't really know you were working on this... perhaps this was positively affected by OGNL-9 's resolution?

Anyway, i'll comment if there are more problems :)

Andreas Andreou - [18/Mar/07 07:07 PM ]
No, it's unrelated to OGNL-9 but i think i've found it...

Assume that a Base class has a method
String getTitle() {...}

Subclass contains
@Message("page-title")
public abstract String getTitle(int messagesCount);

Then all the mentioned expressions fail -
even ognl:getTitle(1) fails...

Probably trying to call the getTitle of the base that doesn't accept any arguments ???