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();
+	}
 }