You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Ernesto Reinaldo Barreiro (JIRA)" <ji...@apache.org> on 2013/01/14 19:46:12 UTC

[jira] [Created] (WICKET-4975) client side memory leak on date picker

Ernesto Reinaldo Barreiro created WICKET-4975:
-------------------------------------------------

             Summary: client side memory leak on  date picker
                 Key: WICKET-4975
                 URL: https://issues.apache.org/jira/browse/WICKET-4975
             Project: Wicket
          Issue Type: Bug
          Components: wicket-datetime
    Affects Versions: 6.4.0, 1.5.8, 1.4.21
         Environment: any
            Reporter: Ernesto Reinaldo Barreiro
            Priority: Minor


Under certain conditions date picker component leaks memory  at client side. More concretely DatePicker#renderHead tries to clean up existing date pickers via

AjaxRequestTarget target = component.getRequestCycle().find(AjaxRequestTarget.class);
		if (target != null)
		{
			String escapedComponentMarkupId = getEscapedComponentMarkupId();
			String javascript = "var e = Wicket.$('" + escapedComponentMarkupId + "Dp" +
				"'); if (e != null && typeof(e.parentNode) != 'undefined' && " +
				"typeof(e.parentNode.parentNode != 'undefined')) {" +
				"e.parentNode.parentNode.removeChild(e.parentNode);" + "YAHOO.wicket." +
				escapedComponentMarkupId + "DpJs.destroy(); delete YAHOO.wicket." +
				escapedComponentMarkupId + "DpJs;}";

			target.prependJavaScript(javascript);
		}

but this fails if "panel" containing date pickers is completely replaced via AJAX. E.g. for date pickers placed on an AJAX navigated repeater. The result is that client side object

YAHOO.wicket

object grows and grows... and for

1- Wicket 1.5.x and wicket 1.4.x this means time for creating new date pickers grows steadily.
2- For wicket 1.6.x there seems not to have any performance hindrance  (only the memory leak).

I attach quick starts demonstrating this.


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