"Error generating OGNL statements" in script template
-----------------------------------------------------

                 Key: TAPESTRY-2403
                 URL: https://issues.apache.org/jira/browse/TAPESTRY-2403
             Project: Tapestry
          Issue Type: Bug
    Affects Versions: 4.1.5
            Reporter: Martin Strand
            Priority: Minor


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 = {wmode: "transparent"};
        var attributes = {styleclass: "${class}"};
        swfobject.embedSWF("${path}", "${id}", "${width}", "${height}", 
"${version}", false, flashvars, params, attributes);
        }
        </initialization>
</script>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to