Author: ivaynberg Date: Mon Feb 22 08:37:34 2010 New Revision: 912510 URL: http://svn.apache.org/viewvc?rev=912510&view=rev Log: broght back RestartResponseException and fixed some more tests
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/AbstractRestartResponseException.java - copied, changed from r912493, wicket/trunk/wicket/src/main/disabled/org/apache/wicket/AbstractRestartResponseException.java wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java - copied, changed from r912493, wicket/trunk/wicket/src/main/disabled/org/apache/wicket/RestartResponseException.java Removed: wicket/trunk/wicket/src/main/disabled/org/apache/wicket/AbstractRestartResponseException.java wicket/trunk/wicket/src/main/disabled/org/apache/wicket/RestartResponseException.java wicket/trunk/wicket/src/test/java/org/apache/wicket/session/InvalidateSessionTest$MyPage.html wicket/trunk/wicket/src/test/java/org/apache/wicket/session/InvalidateSessionTest.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java?rev=912510&r1=912509&r2=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/AbortException.java Mon Feb 22 08:37:34 2010 @@ -16,16 +16,33 @@ */ package org.apache.wicket; +import org.apache.wicket.ng.request.cycle.RequestHandlerStack.ReplaceHandlerException; +import org.apache.wicket.request.target.basic.EmptyRequestHandler; + /** * Immediately aborts any further processing. * * @author Igor Vaynberg (ivaynberg) */ -public class AbortException extends RuntimeException +public class AbortException extends ReplaceHandlerException { private static final long serialVersionUID = 1L; + + protected AbortException(IRequestHandler replacementRequestHandler) + { + super(replacementRequestHandler, true); + } + + /** + * Constructor + */ + public AbortException() + { + super(EmptyRequestHandler.getInstance(), true); + } + /** * @see java.lang.Throwable#fillInStackTrace() */ Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/AbstractRestartResponseException.java (from r912493, wicket/trunk/wicket/src/main/disabled/org/apache/wicket/AbstractRestartResponseException.java) URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/AbstractRestartResponseException.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/AbstractRestartResponseException.java&p1=wicket/trunk/wicket/src/main/disabled/org/apache/wicket/AbstractRestartResponseException.java&r1=912493&r2=912510&rev=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/disabled/org/apache/wicket/AbstractRestartResponseException.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/AbstractRestartResponseException.java Mon Feb 22 08:37:34 2010 @@ -16,6 +16,8 @@ */ package org.apache.wicket; +import org.apache.wicket.ng.request.cycle.RequestCycle; + /** * An exception that causes the request cycle to immediately switch to respond stage. * @@ -32,12 +34,30 @@ /** * Construct. */ - public AbstractRestartResponseException() + protected AbstractRestartResponseException(IRequestHandler handler) + { + super(new ResponseResettingDecorator(handler)); + } + + private static class ResponseResettingDecorator implements IRequestHandler { - RequestCycle rc = RequestCycle.get(); - if (rc != null) + private final IRequestHandler delegate; + + public ResponseResettingDecorator(IRequestHandler delegate) + { + this.delegate = delegate; + } + + public void detach(RequestCycle requestCycle) + { + delegate.detach(requestCycle); + } + + public void respond(RequestCycle requestCycle) { - rc.getResponse().reset(); + requestCycle.getResponse().reset(); + delegate.respond(requestCycle); } + } } Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java?rev=912510&r1=912509&r2=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Response.java Mon Feb 22 08:37:34 2010 @@ -23,6 +23,7 @@ * {...@link #write(CharSequence)} on the same {...@link Response} instance. * * @author Matej Knopp + * @author igor.vaynberg */ public abstract class Response { @@ -60,4 +61,12 @@ * @return encoded URL */ public abstract String encodeURL(CharSequence url); + + /** + * Called when the Response needs to reset itself. Subclasses can empty there buffer or build up + * state. + */ + public void reset() + { + } } Copied: wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java (from r912493, wicket/trunk/wicket/src/main/disabled/org/apache/wicket/RestartResponseException.java) URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java?p2=wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java&p1=wicket/trunk/wicket/src/main/disabled/org/apache/wicket/RestartResponseException.java&r1=912493&r2=912510&rev=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/disabled/org/apache/wicket/RestartResponseException.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/RestartResponseException.java Mon Feb 22 08:37:34 2010 @@ -16,6 +16,10 @@ */ package org.apache.wicket; +import org.apache.wicket.ng.request.component.PageParameters; +import org.apache.wicket.ng.request.handler.PageProvider; +import org.apache.wicket.ng.request.handler.impl.RenderPageRequestHandler; + /** * Causes wicket to interrupt current request processing and immediately respond with the specified * page. @@ -37,7 +41,7 @@ */ public <C extends Page> RestartResponseException(Class<C> pageClass) { - RequestCycle.get().setResponsePage(pageClass); + this(pageClass, null); } /** @@ -53,7 +57,7 @@ */ public <C extends Page> RestartResponseException(Class<C> pageClass, PageParameters params) { - RequestCycle.get().setResponsePage(pageClass, params); + super(new RenderPageRequestHandler(new PageProvider(pageClass, params))); } /** @@ -64,6 +68,6 @@ */ public RestartResponseException(Page page) { - RequestCycle.get().setResponsePage(page); + super(new RenderPageRequestHandler(new PageProvider(page))); } } Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=912510&r1=912509&r2=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java Mon Feb 22 08:37:34 2010 @@ -207,6 +207,7 @@ /** * Resets the response to a clean state so it can be reused to save on garbage. */ + @Override public void reset() { buffer.clear(); @@ -1195,4 +1196,6 @@ { return page.getPageParameters(); } + + } Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java?rev=912510&r1=912509&r2=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ng/mock/MockWebResponse.java Mon Feb 22 08:37:34 2010 @@ -289,4 +289,32 @@ public void flush() { } + + @Override + public void reset() + { + super.reset(); + if (binaryResponse != null) + { + binaryResponse = new ByteArrayOutputStream(); + } + contentLength = null; + contentType = null; + if (cookies != null) + { + cookies.clear(); + } + errorMessage = null; + if (headers != null) + { + headers.clear(); + } + redirectUrl = null; + status = null; + if (textResponse != null) + { + textResponse.setLength(0); + } + + } } Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java?rev=912510&r1=912509&r2=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java Mon Feb 22 08:37:34 2010 @@ -272,6 +272,15 @@ private WriteDataAction dataAction; @Override + public void reset() + { + super.reset(); + actions.clear(); + charSequenceAction = null; + dataAction = null; + } + + @Override public void addCookie(Cookie cookie) { actions.add(new AddCookieAction(cookie)); Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java?rev=912510&r1=912509&r2=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebResponse.java Mon Feb 22 08:37:34 2010 @@ -212,4 +212,12 @@ throw new WicketRuntimeException(e); } } + + @Override + public void reset() + { + super.reset(); + httpServletResponse.reset(); + redirect = false; + } } Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java?rev=912510&r1=912509&r2=912510&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/response/StringResponse.java Mon Feb 22 08:37:34 2010 @@ -53,6 +53,7 @@ /** * @see org.apache.wicket.Response#reset() */ + @Override public void reset() { out.clear();