Author: pete Date: Sat Nov 13 10:53:57 2010 New Revision: 1034726 URL: http://svn.apache.org/viewvc?rev=1034726&view=rev Log: transfer-buffered-cookie-operations
Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/BufferedWebResponse.java wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HeaderBufferingWebResponse.java 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=1034726&r1=1034725&r2=1034726&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 Sat Nov 13 10:53:57 2010 @@ -36,7 +36,7 @@ import org.apache.wicket.util.lang.Args; * * @author Matej Knopp */ -public class BufferedWebResponse extends WebResponse +public class BufferedWebResponse extends WebResponse implements IBufferedWebResponse { private final transient WebResponse originalResponse; @@ -47,9 +47,30 @@ public class BufferedWebResponse extends */ public BufferedWebResponse(WebResponse originalResponse) { + // if original response had some cookies set we should not forget to transfer them + if(originalResponse instanceof IBufferedWebResponse) + ((IBufferedWebResponse) originalResponse).transferCookies(this); + this.originalResponse = originalResponse; } + /** + * transfer cookie operations (add, clear) to given web response + * + * @param response web response that should receive the current cookie operation + */ + public void transferCookies(WebResponse response) + { + for (Action action : actions) + { + if (action instanceof AddCookieAction) + action.invoke(response); + else if (action instanceof ClearCookieAction) + action.invoke(response); + } + } + + @Override public String encodeURL(CharSequence url) { 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=1034726&r1=1034725&r2=1034726&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 Sat Nov 13 10:53:57 2010 @@ -33,7 +33,7 @@ import org.apache.wicket.request.http.We * * @author Matej Knopp */ -class HeaderBufferingWebResponse extends WebResponse +class HeaderBufferingWebResponse extends WebResponse implements IBufferedWebResponse { private final WebResponse originalResponse; private final BufferedWebResponse bufferedResponse; @@ -175,4 +175,9 @@ class HeaderBufferingWebResponse extends bufferedResponse.reset(); bufferedWritten = false; } + + public void transferCookies(WebResponse webResponse) + { + bufferedResponse.transferCookies(webResponse); + } } Added: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java?rev=1034726&view=auto ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java (added) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/IBufferedWebResponse.java Sat Nov 13 10:53:57 2010 @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.protocol.http; + +import org.apache.wicket.request.http.WebResponse; + +interface IBufferedWebResponse +{ + void transferCookies(WebResponse webResponse); +}