You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2013/10/28 09:46:09 UTC
[02/27] git commit: 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
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/2ae366b2
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2ae366b2
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2ae366b2
Branch: refs/heads/wicket-4997
Commit: 2ae366b2eb90d53f1a6e06c3c09ba0d509bfe9d7
Parents: 7db55f5
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Sep 26 17:12:46 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Sep 26 17:13:52 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/2ae366b2/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 86cf240..64d5d23 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/2ae366b2/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();
+ }
}