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


Reply via email to