tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jochen Kemnade (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TAP5-1956) Tapestry.ZoneManager creates memory leaks
Date Mon, 18 Jun 2012 06:28:43 GMT

    [ https://issues.apache.org/jira/browse/TAP5-1956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13393681#comment-13393681

Jochen Kemnade commented on TAP5-1956:

> Have you verified these leaks?

Yes, I have verified them using Chrome's dev tools, especially analyzing heap dumps. Try for
example a zone within an outer div. $T(zone).zoneManager is the Tapestry.ZoneManager for the
zone. After calling T5.dom.purgeChildren(outerDiv), $T(zone).zoneManager should be reset but
isn't. The cycle is still there.

> when Tapestry removes content from the DOM , it [...] clears the attached Tapestry object

That's what I thought too, but apparently that is not the case, at least I cannot find the
code that does it. Also, there isn't really a "Tapestry object" in and after T5.2, $T return's
the Prototype Element storage and - frankly spoken - I don't trust Prototype to clean up after
Maybe it would be sufficient to clear the storage in the T5.dom's purge function, but in fact
I like the clean-up callback approach.
> Tapestry.ZoneManager creates memory leaks
> -----------------------------------------
>                 Key: TAP5-1956
>                 URL: https://issues.apache.org/jira/browse/TAP5-1956
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3.3
>            Reporter: Jochen Kemnade
>              Labels: dom, memory_leak, patch, zone
>         Attachments: 0001-Fix-memory-leaks-with-Tapestry.ZoneManager.patch
> The Tapestry.ZoneManager creates a circular reference between the DOM tree and the ZoneManager
JS object. This circle is not broken when the element is removed from the DOM, so it will
not be cleaned up.

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


View raw message