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 2010/10/13 20:59:37 UTC

svn commit: r1022239 - in /wicket/trunk/wicket/src/main/java/org/apache/wicket: protocol/http/HeaderBufferingWebResponse.java request/handler/render/WebPageRenderer.java

Author: mgrigorov
Date: Wed Oct 13 18:59:37 2010
New Revision: 1022239

URL: http://svn.apache.org/viewvc?rev=1022239&view=rev
Log:
WICKET-3101 No exceptionpage on exceptions during ajax

Allow HeaderBufferingWebResponse#reset() to actually reset the undelying buffer ignoring whether there is something already in or not.
This way now it is possible to call #sendRedirect() after writing some bytes in the buffer.

reviewed-by: ivaynberg

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
    wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java?rev=1022239&r1=1022238&r2=1022239&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java Wed Oct 13 18:59:37 2010
@@ -173,7 +173,7 @@ class HeaderBufferingWebResponse extends
 		{
 			throw new IllegalStateException("Response has already been flushed!");
 		}
-		checkHeader();
 		bufferedResponse.reset();
+		bufferedWritten = false;
 	}
 }

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java?rev=1022239&r1=1022238&r2=1022239&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/handler/render/WebPageRenderer.java Wed Oct 13 18:59:37 2010
@@ -159,6 +159,7 @@ public class WebPageRenderer extends Pag
 	{
 		WebResponse response = (WebResponse)requestCycle.getResponse();
 		String relativeUrl = requestCycle.getUrlRenderer().renderUrl(url);
+		response.reset();
 		response.sendRedirect(relativeUrl);
 	}
 
@@ -185,12 +186,10 @@ public class WebPageRenderer extends Pag
 			// if there is saved response for this URL render it
 			bufferedResponse.writeTo((WebResponse)requestCycle.getResponse());
 		}
-		else if (getRedirectPolicy() == RedirectPolicy.NEVER_REDIRECT ||
-			isOnePassRender() // 
+		else if (getRedirectPolicy() == RedirectPolicy.NEVER_REDIRECT || isOnePassRender() //
 			||
 			(targetUrl.equals(currentUrl) && !getPageProvider().isNewPageInstance() && !getPage().isPageStateless()) //
-			||
-			(targetUrl.equals(currentUrl) && isRedirectToRender()))
+			|| (targetUrl.equals(currentUrl) && isRedirectToRender()))
 		{
 			// if the policy is never to redirect
 			// or one pass render mode is on