[
https://issues.apache.org/jira/browse/TAP5-1866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dragan Sahpaski updated TAP5-1866:
----------------------------------
Attachment: TAP5-1866.patch
> ZoneRefresh mixin should perform cleanup if the zone is destroyed
> -----------------------------------------------------------------
>
> Key: TAP5-1866
> URL: https://issues.apache.org/jira/browse/TAP5-1866
> Project: Tapestry 5
> Issue Type: Improvement
> Components: tapestry-core
> Affects Versions: 5.3.2, 5.4
> Reporter: Dragan Sahpaski
> Priority: Minor
> Labels: patch, zonerefresh
> Attachments: TAP5-1866.patch
>
>
> Consider the following use case:
> A zone with a ZoneRefresh (located in another zone) is updated several times
> and then the outer zone is updated with another block.
> Currently, after the update, exceptions are constantly thrown by the
> javascript PeriodicUpdater in zone-refresh.js on the line
> "zoneRefresh.fire(Tapestry.ZONE_REFRESH_EVENT)" because the div element
> that's linked to the zone with Tapestry.Initializer.updateZoneOnEvent is not
> destroyed and the corresponding timer is also not destroyed.
> The ZoneRefresh mixin should cleanup after itself in scenarios like this.
> A patch with tests is provided.
> Summary:
> 1. [MODIFIED] zone-refresh.js - On a timer update if the zone does
> not exist remove the "div" element on which the updates are triggered and
> stop the timer.
> 2. [MODIFIED] ZoneRefreshTest.java - One test method added
> 3. [ADDED] ZoneRefreshDestroyingZones.tml - Demo page with one outer zone
> with a ZoneRefresh mixin that toggles between two inner zones each a with
> ZoneRefresh mixin.
> 4. [ADDED] ZoneRefreshDestroyingZones.java
> 5. [MODIFIED] Index.tml - Link to ZoneRefreshDestroyingZones added
> The patch does not modify any public API.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira