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

Key: OGNL-12
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Jesse Kuhnert
Reporter: Norbert Sándor
Votes: 0
Watchers: 0
Operations

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

expression compilation problem

Created: 11/Mar/07 01:20 PM   Updated: 12/Mar/07 05:37 PM
Component/s: ExpressionCompiler
Affects Version/s: 2.7
Fix Version/s: 2.7


 Description  « Hide
I have copied this issue from the Tapestry JIRA: https://issues.apache.org/jira/browse/TAPESTRY-1327
I use Tapestry 4.1.2-SNAPSHOT which uses OGNL 2.7-SNAPSHOT.


The following expression does not compile with the latest snapshot (it works with Tapestry 4.1.1 which uses OGNL 2.6.9).

page.requestCycle.getAttribute(@org.apache.tapestry.TapestryUtils@FORM_ATTRIBUTE) != null" />

The exception:

Error compiling expression on object $Home_114@3c1[Home] with expression node page.requestCycle.getAttribute(@org.apache.tapestry.TapestryUtils@FORM_ATTRIBUTE) != null getter body: { return ($w) (!ognl.OgnlOps.equal( ($w) (($Home_114)$2).getPage()).getRequestCycle().getAttribute(((org.apache.tapestry.AbstractPage)org.apache.tapestry.TapestryUtils.FORM_ATTRIBUTE) , null));} setter body: nullUnable to add method java.lang.Object get(ognl.OgnlContext, java.lang.Object) to class ognl.ASTNotEq29886762Accessor: [source error] equal(org.apache.tapestry.IPage) not found in ognl.OgnlOps

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_11131e5aff3.getCompiledExpression($ExpressionCache_11131e5aff3.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)
$Insert_127.getValue($Insert_127.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.components.RenderBody.renderComponent(RenderBody.java:41)
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.components.RenderBody.renderComponent(RenderBody.java:41)
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)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:184)
org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:521)
org.apache.tapestry.html.Shell.renderComponent(Shell.java:64)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:708)
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:708)
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:708)
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:708)
org.apache.tapestry.services.impl.DefaultResponseBuilder.render(DefaultResponseBuilder.java:182)
org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:246)
org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:405)
...


 All   Comments   Change History      Sort Order:
Norbert Sándor - [11/Mar/07 01:22 PM ]
Sorry, the expression is

page.requestCycle.getAttribute(@org.apache.tapestry.TapestryUtils@FORM_ATTRIBUTE) != null

Jesse Kuhnert - [11/Mar/07 06:53 PM ]
I tried the literal expression you mentioned in your report but can't re-produce it. I'm assuming that it has been fixed in either tapestry or ognl since you originally reported it, or your versions are different than mine somehow.

Jesse Kuhnert - [12/Mar/07 05:37 PM ]
Found the problem.

Jesse Kuhnert - [12/Mar/07 05:37 PM ]
I found this in a different test case that seems similar enough to optimistically hope they are related.