You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Jochen Kemnade (JIRA)" <ji...@apache.org> on 2013/08/13 13:40:47 UTC

[jira] [Updated] (TAP5-2155) Prevent Element modification after its markup has been prepared to be sent to the client

     [ https://issues.apache.org/jira/browse/TAP5-2155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jochen Kemnade updated TAP5-2155:
---------------------------------

    Attachment: 0001-prevent-modification-of-elements-once-their-markup-h.patch
    
> Prevent Element modification after its markup has been prepared to be sent to the client
> ----------------------------------------------------------------------------------------
>
>                 Key: TAP5-2155
>                 URL: https://issues.apache.org/jira/browse/TAP5-2155
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-core
>    Affects Versions: 5.4
>            Reporter: Jochen Kemnade
>              Labels: ajax, dom, patch, timing
>         Attachments: 0001-prevent-modification-of-elements-once-their-markup-h.patch
>
>
> If a mutator method (e.g. `attribute(String, String)`) is called on an Element whose content has already been sent to the client as the result of an AJAX request, the invocation's effect (the attribute's value being updated) will never make it to the client.
> This can happen if you make modifications to an element in a heartbeat-deferred render method of a component that's contained in a zone and that zone is updated via an AJAX request. Once heartbeat.end() is called from the PartialMarkupRendererFilter in TapestryModule:1863, the markup has already been extracted by RenderCommandComponentEventResultProcessor:84.
> The patch adds Element.preventModification() that uses a OneShotLock to guard the mutator methods.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira