You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "I D (JIRA)" <ji...@apache.org> on 2015/09/09 12:24:45 UTC

[jira] [Updated] (TAP5-2500) Label broken when inside zone and attached to a Field after that zone

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

I D updated TAP5-2500:
----------------------
    Description: 
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].

  was:
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].


> 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
>
> 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)