Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Invalid
-
4.1.5
-
None
-
None
Description
I just upgraded from 4.1.1 to 4.1.5 and everything seems to work except for this OGNL error message caused by a script template.
The script works fine except for the log message, I suppose OGNL falls back to interpreting mode.
ERROR org.apache.tapestry.services.impl.HiveMindExpressionCompiler:222 Error generating OGNL statements for expression class with root
{id=startButton, height=130, width=133, path=/images/flash/button-lite.swf, onclick=window.startClicked(), class=, version=7.0.0}org.apache.hivemind.ApplicationRuntimeException: Unable to add method void set(ognl.OgnlContext, java.lang.Object, java.lang.Object) to class $ASTProperty_119ab263689: [source error] put(java.lang.String,java.lang.Object) not found in java.lang.Object
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:278)
at org.apache.tapestry.services.impl.HiveMindExpressionCompiler.compileExpression(HiveMindExpressionCompiler.java:212)
at ognl.OgnlRuntime.compileExpression(OgnlRuntime.java:414)
at ognl.Ognl.compileExpression(Ognl.java:141)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.parse(ExpressionCacheImpl.java:152)
at org.apache.tapestry.services.impl.ExpressionCacheImpl.getCompiledExpression(ExpressionCacheImpl.java:115)
at $ExpressionCache_119ab2635a3.getCompiledExpression($ExpressionCache_119ab2635a3.java)
at org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.read(ExpressionEvaluatorImpl.java:107)
at $ExpressionEvaluator_119ab2635a1.read($ExpressionEvaluator_119ab2635a1.java)
at org.apache.tapestry.script.ScriptSessionImpl.evaluate(ScriptSessionImpl.java:86)
at org.apache.tapestry.script.AbstractToken.evaluate(AbstractToken.java:84)
at org.apache.tapestry.script.InsertToken.write(InsertToken.java:48)
at org.apache.tapestry.script.AbstractToken.writeChildren(AbstractToken.java:71)
at org.apache.tapestry.script.InitToken.write(InitToken.java:43)
at org.apache.tapestry.script.AbstractToken.writeChildren(AbstractToken.java:71)
at org.apache.tapestry.script.ParsedScript.execute(ParsedScript.java:82)
...
Caused by: javassist.CannotCompileException: [source error] put(java.lang.String,java.lang.Object) not found in java.lang.Object
at javassist.CtBehavior.setBody(CtBehavior.java:367)
at javassist.CtBehavior.setBody(CtBehavior.java:334)
at org.apache.tapestry.enhance.ClassFabImpl.addMethod(ClassFabImpl.java:272)
...
Caused by: compile error: put(java.lang.String,java.lang.Object) not found in java.lang.Object
at javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:716)
...
The script template is pretty simple:
<!DOCTYPE script PUBLIC
"-//Apache Software Foundation//Tapestry Script Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd">
<script>
<include-script resource-path="swfobject-2.0.js"/>
<input-symbol class="java.lang.String" required="yes" key="path"/>
<input-symbol class="java.lang.String" required="yes" key="id"/>
<input-symbol class="java.lang.String" required="yes" key="width"/>
<input-symbol class="java.lang.String" required="yes" key="height"/>
<input-symbol class="java.lang.String" required="yes" key="version"/>
<input-symbol class="java.lang.String" required="yes" key="class"/>
<input-symbol class="java.lang.String" required="yes" key="onclick"/>
<initialization>
{
var flashvars = {onclick: "${onclick}"};
var params =
;
var attributes = {styleclass: "${class}"};
swfobject.embedSWF("${path}", "${id}", "${width}", "${height}", "${version}", false, flashvars, params, attributes);
}
</initialization>
</script>