You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/02/24 13:53:46 UTC

git commit: WICKET-4429 executeAllTimerBehaviors does not find all timer behaviours

Updated Branches:
  refs/heads/master 75bad4b13 -> bb4977fb1


WICKET-4429 executeAllTimerBehaviors does not find all timer behaviours

Execute the timer behaviors assigned on both the passed container and its children


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

Branch: refs/heads/master
Commit: bb4977fb1e7211b576cd5a2bafe447e6ff1a1412
Parents: 75bad4b
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Feb 24 13:53:37 2012 +0100
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Feb 24 13:53:37 2012 +0100

----------------------------------------------------------------------
 .../wicket/util/tester/BaseWicketTester.java       |   47 +++++++++------
 1 files changed, 28 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/bb4977fb/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index e400de3..71b708c 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -62,7 +62,6 @@ import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
-import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.feedback.FeedbackCollector;
 import org.apache.wicket.feedback.FeedbackMessage;
 import org.apache.wicket.feedback.IFeedbackMessageFilter;
@@ -2127,32 +2126,42 @@ public class BaseWicketTester
 	/**
 	 * Simulates the firing of all ajax timer behaviors on the page
 	 * 
-	 * @param container
+	 * @param page
+	 *      the page which timers will be executed
 	 */
-	public void executeAllTimerBehaviors(final MarkupContainer container)
+	public void executeAllTimerBehaviors(final MarkupContainer page)
 	{
-		container.visitChildren(MarkupContainer.class, new IVisitor<MarkupContainer, Void>()
+		// execute all timer behaviors for the page itself
+		internalExecuteAllTimerBehaviors(page);
+
+		// and for all its children
+		page.visitChildren(Component.class, new IVisitor<Component, Void>()
 		{
 			@Override
-			public void component(final MarkupContainer component, final IVisit<Void> visit)
+			public void component(final Component component, final IVisit<Void> visit)
 			{
-				// get the AbstractAjaxBehaviour which is responsible for
-				// getting the contents of the lazy panel
-				List<AbstractAjaxTimerBehavior> behaviors = component.getBehaviors(AbstractAjaxTimerBehavior.class);
-				for (Behavior b : behaviors)
-				{
-					checkUsability(component, true);
+				internalExecuteAllTimerBehaviors(component);
+			}
+		});
+	}
 
-					log.debug("Triggering AjaxSelfUpdatingTimerBehavior: " +
-						component.getClassRelativePath());
-					AbstractAjaxTimerBehavior timer = (AbstractAjaxTimerBehavior)b;
-					if (!timer.isStopped())
-					{
-						executeBehavior(timer);
-					}
+	private void internalExecuteAllTimerBehaviors(final Component component)
+	{
+		List<AbstractAjaxTimerBehavior> behaviors = component.getBehaviors(AbstractAjaxTimerBehavior.class);
+		for (AbstractAjaxTimerBehavior timer : behaviors)
+		{
+			checkUsability(component, true);
+
+			if (!timer.isStopped())
+			{
+				if (log.isDebugEnabled())
+				{
+					log.debug("Triggering AjaxSelfUpdatingTimerBehavior: {}", component.getClassRelativePath());
 				}
+
+				executeBehavior(timer);
 			}
-		});
+		}
 	}
 
 	/**