WICKET-4959 Unproperly detached Behavior with TabbedPanels

Stop the Ajax timer behavior when the behavior's component is removed from the 
tree


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0b78d759
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0b78d759
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0b78d759

Branch: refs/heads/master
Commit: 0b78d759220c1b09abb0d47b5007757bbfeb4e0c
Parents: e37a9e1
Author: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
Authored: Thu Jan 17 11:18:22 2013 +0200
Committer: Martin Tzvetanov Grigorov <mgrigo...@apache.org>
Committed: Thu Jan 17 11:18:22 2013 +0200

----------------------------------------------------------------------
 .../wicket/ajax/AbstractAjaxTimerBehavior.java     |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/0b78d759/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
index 83edeaa..a80921d 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxTimerBehavior.java
@@ -194,4 +194,15 @@ public abstract class AbstractAjaxTimerBehavior extends 
AbstractDefaultAjaxBehav
                String timeoutHandle = getTimeoutHandle();
                target.prependJavaScript("clearTimeout("+timeoutHandle+"); 
delete "+timeoutHandle+";");
        }
+
+       @Override
+       public void detach(Component component)
+       {
+               AjaxRequestTarget target = 
component.getRequestCycle().find(AjaxRequestTarget.class);
+               if (target != null)
+               {
+                       stop(target);
+               }
+               super.detach(component);
+       }
 }

Reply via email to