[
https://issues.apache.org/jira/browse/TAP5-2500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jochen Kemnade updated TAP5-2500:
---------------------------------
Attachment: patch
The patch adds a test and fix for the exact issue. However it changes the
client id allocation logic in AbstractField and that's why I'd like some more
eyes to go over the change first.
The point is to allocate the client id when it is first requested (so that the
label component can use it if it is located before the field) and clear it
after the field has rendered (so that multiple renderings of the field use
different ids) but to delay the resetting until the end of the heartbeat (so
that the label component can use it if it is located *after* the field).
> Label broken when inside zone and attached to a Field after that zone
> ---------------------------------------------------------------------
>
> Key: TAP5-2500
> URL: https://issues.apache.org/jira/browse/TAP5-2500
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.4
> Reporter: I D
> Attachments: patch
>
>
> This is just one example, since the same problem is observed for
> TriggerFrament inside a zone when used in conjunction with a FormFragment
> outside the zone (and after it).
> {code:xml}
> <t:zone t:id="myZone">
> <t:label for="myField">Label</t:label>
> </t:zone>
> <t:textfield t:id="myField"/>
> {code}
> The reason this doesn't work is because Label.updateAttributes() uses
> @HeartbeatDeferred and assumes this invocation will be deferred until the end
> of the *page* render. Alas, since the label is inside a zone, which for some
> reason starts and ends its own heartbeat (nested within, and occluding, the
> page heartbeat), the invocation is deferred only until the end of the *zone*
> render, i.e. - too early.
> Apparently this bug was introduced in [this
> commit|https://github.com/apache/tapestry-5/commit/cc6fe5f3f85001eca4e0aa6a79c3bedc3e36b82c],
> which in turn was addressing
> [TAP5-940|https://issues.apache.org/jira/browse/TAP5-940].
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)