You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2008/02/10 22:38:24 UTC

svn commit: r620337 - /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java

Author: knopp
Date: Sun Feb 10 13:38:23 2008
New Revision: 620337

URL: http://svn.apache.org/viewvc?rev=620337&view=rev
Log:
Do not use REDIRECT_TO_BUFFER for stateless pages

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java?rev=620337&r1=620336&r2=620337&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java Sun Feb 10 13:38:23 2008
@@ -40,7 +40,7 @@
  * bookmarkable pages as well as non-bookmarkable component interfaces. The protected handleRender
  * method is the internal entrypoint which takes care of the details of rendering a response to an
  * HTTP request.
- * 
+ *
  * @see RequestCycle
  * @author Jonathan Locke
  * @author Johan Compagner
@@ -60,7 +60,7 @@
 	/**
 	 * Constructor which simply passes arguments to superclass for storage there. This instance will
 	 * be set as the current one for this thread.
-	 * 
+	 *
 	 * @param application
 	 *            The application
 	 * @param request
@@ -69,7 +69,7 @@
 	 *            The response
 	 */
 	public WebRequestCycle(final WebApplication application, final WebRequest request,
-			final Response response)
+		final Response response)
 	{
 		super(application, request, response);
 	}
@@ -83,7 +83,7 @@
 	 * {@link #onRuntimeException(Page, RuntimeException)} is not called unless you deliberately put
 	 * effort in it to make it work.</strong>
 	 * </p>
-	 * 
+	 *
 	 * @see org.apache.wicket.RequestCycle#getProcessor()
 	 */
 	public IRequestCycleProcessor getProcessor()
@@ -120,7 +120,7 @@
 	 * directly, but work with setResponsePage instead. This method is part of Wicket's internal
 	 * behavior and should only be used when you want to circumvent the normal framework behavior
 	 * and issue the redirect directly.
-	 * 
+	 *
 	 * @param page
 	 *            The page to redirect to
 	 */
@@ -131,7 +131,8 @@
 		// Check if use serverside response for client side redirects
 		IRequestCycleSettings settings = application.getRequestCycleSettings();
 		if ((settings.getRenderStrategy() == IRequestCycleSettings.REDIRECT_TO_BUFFER) &&
-				(application instanceof WebApplication) && !(getWebRequest().isAjax()))
+			(application instanceof WebApplication) && !(getWebRequest().isAjax()) &&
+			(!page.isPageStateless()))
 		{
 			// remember the current response
 			final WebResponse currentResponse = getWebResponse();
@@ -142,12 +143,11 @@
 					// Get the redirect url and set it in the ServletWebRequest
 					// so that it can be used for relative url calculation.
 					((ServletWebRequest)getWebRequest()).setWicketRedirectUrl(Strings.replaceAll(
-							page.urlFor(IRedirectListener.INTERFACE).toString(), "../", "")
-							.toString());
+						page.urlFor(IRedirectListener.INTERFACE).toString(), "../", "").toString());
 				}
 				// create the redirect response.
 				final BufferedHttpServletResponse servletResponse = new BufferedHttpServletResponse(
-						currentResponse.getHttpServletResponse());
+					currentResponse.getHttpServletResponse());
 				final WebResponse redirectResponse = new WebResponse(servletResponse)
 				{
 					public CharSequence encodeURL(CharSequence url)
@@ -198,9 +198,9 @@
 					String stripped = Strings.replaceAll(redirectUrl, "../", "").toString();
 					int index = stripped.indexOf("?");
 					String sessionId = getApplication().getSessionStore().getSessionId(request,
-							true);
-					((WebApplication)application).addBufferedResponse(sessionId, stripped
-							.substring(index + 1), servletResponse);
+						true);
+					((WebApplication)application).addBufferedResponse(sessionId,
+						stripped.substring(index + 1), servletResponse);
 				}
 			}
 			catch (RuntimeException ex)
@@ -272,7 +272,7 @@
 
 	/**
 	 * If it's an ajax request we always redirect.
-	 * 
+	 *
 	 * @see org.apache.wicket.RequestCycle#isRedirect()
 	 */
 	public final boolean isRedirect()