[
https://issues.apache.org/jira/browse/TAP5-35?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13014333#comment-13014333
]
Howard M. Lewis Ship commented on TAP5-35:
------------------------------------------
Glad I looked at this one; the logic that cleans up the RenderVariable map
after rendering turns out to create the PerThreadValue for storing the map
blindly. This means that every component ends up with a PerThreadValue to store
the Map, and an instance of the Map is created just to be discarded.
> During an Ajax update, using a "var:" binding prefix causes an exception
> indicating that the page is not rendering
> ------------------------------------------------------------------------------------------------------------------
>
> Key: TAP5-35
> URL: https://issues.apache.org/jira/browse/TAP5-35
> Project: Tapestry 5
> Issue Type: Bug
> Affects Versions: 5.0.15
> Reporter: Josh Canfield
> Assignee: Howard M. Lewis Ship
> Priority: Minor
> Attachments: BasicAjax.java, BasicAjax.tml
>
>
> Using the var binding within a zone works fine when you load the page, but
> when you update the zone using an action link the zone doesn't update and an
> error is logged.
> Caused by: org.apache.tapestry.ioc.internal.util.TapestryException: Failure
> writing parameter 'value' of component BasicAjax:loop: Component BasicAjax is
> not rendering, so render variable 'string' may not be updated. [at
> classpath:joshcan/test/myapp/pages/BasicAjax.tml, line 6, column 49]
> at
> org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.writeParameter(InternalComponentResourcesImpl.java:273)
> at
> org.apache.tapestry.corelib.components.Loop._$update_parameter_value(Loop.java)
> at org.apache.tapestry.corelib.components.Loop.begin(Loop.java:282)
> at org.apache.tapestry.corelib.components.Loop.beginRender(Loop.java)
> at
> org.apache.tapestry.internal.structure.ComponentPageElementImpl$11$1.run(ComponentPageElementImpl.java:338)
> at
> org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:874)
> ... 66 more
> Caused by: java.lang.IllegalStateException: Component BasicAjax is not
> rendering, so render variable 'string' may not be updated.
> at
> org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.storeRenderVariable(InternalComponentResourcesImpl.java:429)
> at
> org.apache.tapestry.internal.bindings.RenderVariableBinding.set(RenderVariableBinding.java:38)
> at
> org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.writeParameter(InternalComponentResourcesImpl.java:269)
> ... 71 more
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira