Jochen Kemnade created TAP5-2155:
------------------------------------

             Summary: 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


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

Reply via email to