You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2011/04/01 02:58:05 UTC

[jira] [Commented] (TAP5-35) During an Ajax update, using a "var:" binding prefix causes an exception indicating that the page is not rendering

    [ 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