You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by al...@apache.org on 2007/05/13 20:23:00 UTC

svn commit: r537630 - /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java

Author: almaw
Date: Sun May 13 11:23:00 2007
New Revision: 537630

URL: http://svn.apache.org/viewvc?view=rev&rev=537630
Log:
Re-use urlDepth between AJAX requests.

Modified:
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java?view=diff&rev=537630&r1=537629&r2=537630
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/RequestCycle.java Sun May 13 11:23:00 2007
@@ -704,7 +704,14 @@
 		params.setBehaviorId(String.valueOf(index));
 		if (request instanceof ServletWebRequest)
 		{
-			params.setUrlDepth(((ServletWebRequest)request).getDepthRelativeToWicketHandler());
+			ServletWebRequest swr = (ServletWebRequest)request;
+			// If we're coming in with an existing depth, use it. Otherwise,
+			// compute from the URL. This provides correct behavior for repeated
+			// AJAX requests: If we need to generate a URL within an AJAX
+			// request for another one, it needs to be at the same depth as the
+			// original AJAX request.
+			int urlDepth = swr.getRequestParameters().getUrlDepth();
+			params.setUrlDepth(urlDepth > -1 ? urlDepth : swr.getDepthRelativeToWicketHandler());
 		}
 
 		final IRequestTarget target = new BehaviorRequestTarget(component.getPage(), component,