Updated Branches:
  refs/heads/master d3f064443 -> 5cb06d979

WICKET-5369 Can't set a cookie using CookieUtils during an ajax request due to 
java.lang.ClassCastException: 
org.apache.wicket.ajax.AbstractAjaxResponse$AjaxResponse cannot be cast to 
org.apache.wicket.request.http.WebResponse


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5cb06d97
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5cb06d97
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5cb06d97

Branch: refs/heads/master
Commit: 5cb06d97944b9a73b297f21d242022795a8d3dfb
Parents: d3f0644
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Sep 26 17:12:46 2013 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu Sep 26 17:12:46 2013 +0200

----------------------------------------------------------------------
 .../wicket/ajax/AbstractAjaxResponse.java       | 89 +++++++++++++++++++-
 .../protocol/ws/api/WebSocketResponse.java      | 84 +++++++++++++++++-
 2 files changed, 168 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/5cb06d97/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java 
b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
index 0f656b0..64900b2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractAjaxResponse.java
@@ -24,6 +24,8 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.servlet.http.Cookie;
+
 import org.apache.wicket.Component;
 import org.apache.wicket.Page;
 import org.apache.wicket.markup.head.HeaderItem;
@@ -48,6 +50,7 @@ import org.apache.wicket.util.lang.Classes;
 import org.apache.wicket.util.lang.Generics;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.time.Time;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -123,7 +126,7 @@ public abstract class AbstractAjaxResponse
        {
                this.page = page;
 
-               Response response = page.getResponse();
+               WebResponse response = (WebResponse) page.getResponse();
                encodingBodyResponse = new AjaxResponse(response);
                encodingHeaderResponse = new AjaxResponse(response);
        }
@@ -592,13 +595,13 @@ public abstract class AbstractAjaxResponse
         *
         * @author Igor Vaynberg (ivaynberg)
         */
-       protected static final class AjaxResponse extends Response
+       protected static final class AjaxResponse extends WebResponse
        {
                private final AppendingStringBuffer buffer = new 
AppendingStringBuffer(256);
 
                private boolean escaped = false;
 
-               private final Response originalResponse;
+               private final WebResponse originalResponse;
 
                /**
                 * Constructor.
@@ -606,7 +609,7 @@ public abstract class AbstractAjaxResponse
                 * @param originalResponse
                 *      the original request cycle response
                 */
-               private AjaxResponse(Response originalResponse)
+               private AjaxResponse(WebResponse originalResponse)
                {
                        this.originalResponse = originalResponse;
                }
@@ -682,6 +685,84 @@ public abstract class AbstractAjaxResponse
                {
                        return originalResponse.getContainerResponse();
                }
+
+               @Override
+               public void addCookie(Cookie cookie)
+               {
+                       originalResponse.addCookie(cookie);
+               }
+
+               @Override
+               public void clearCookie(Cookie cookie)
+               {
+                       originalResponse.clearCookie(cookie);
+               }
+
+               @Override
+               public void setHeader(String name, String value)
+               {
+                       originalResponse.setHeader(name, value);
+               }
+
+               @Override
+               public void addHeader(String name, String value)
+               {
+                       originalResponse.addHeader(name, value);
+               }
+
+               @Override
+               public void setDateHeader(String name, Time date)
+               {
+                       originalResponse.setDateHeader(name, date);
+               }
+
+               @Override
+               public void setContentLength(long length)
+               {
+                       originalResponse.setContentLength(length);
+               }
+
+               @Override
+               public void setContentType(String mimeType)
+               {
+                       originalResponse.setContentType(mimeType);
+               }
+
+               @Override
+               public void setStatus(int sc)
+               {
+                       originalResponse.setStatus(sc);
+               }
+
+               @Override
+               public void sendError(int sc, String msg)
+               {
+                       originalResponse.sendError(sc, msg);
+               }
+
+               @Override
+               public String encodeRedirectURL(CharSequence url)
+               {
+                       return originalResponse.encodeRedirectURL(url);
+               }
+
+               @Override
+               public void sendRedirect(String url)
+               {
+                       originalResponse.sendRedirect(url);
+               }
+
+               @Override
+               public boolean isRedirect()
+               {
+                       return originalResponse.isRedirect();
+               }
+
+               @Override
+               public void flush()
+               {
+                       originalResponse.flush();
+               }
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/5cb06d97/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
----------------------------------------------------------------------
diff --git 
a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
 
b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
index 4d43f97..7faa195 100644
--- 
a/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
+++ 
b/wicket-experimental/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketResponse.java
@@ -19,7 +19,11 @@ package org.apache.wicket.protocol.ws.api;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
+import javax.servlet.http.Cookie;
+
 import org.apache.wicket.request.Response;
+import org.apache.wicket.request.http.WebResponse;
+import org.apache.wicket.util.time.Time;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -32,7 +36,7 @@ import org.slf4j.LoggerFactory;
  *
  * @since 6.0
  */
-public class WebSocketResponse extends Response
+public class WebSocketResponse extends WebResponse
 {
        private static final Logger LOG = 
LoggerFactory.getLogger(WebSocketResponse.class);
        
@@ -133,4 +137,82 @@ public class WebSocketResponse extends Response
        {
                return connection;
        }
+
+       @Override
+       public void addCookie(Cookie cookie)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void clearCookie(Cookie cookie)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void setHeader(String name, String value)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void addHeader(String name, String value)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void setDateHeader(String name, Time date)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void setContentLength(long length)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void setContentType(String mimeType)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void setStatus(int sc)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void sendError(int sc, String msg)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public String encodeRedirectURL(CharSequence url)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public void sendRedirect(String url)
+       {
+               throw new UnsupportedOperationException();
+       }
+
+       @Override
+       public boolean isRedirect()
+       {
+               return false;
+       }
+
+       @Override
+       public void flush()
+       {
+               throw new UnsupportedOperationException();
+       }
 }

Reply via email to