You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2014/01/07 19:36:16 UTC
git commit: WICKET-5463 resilience against unsupported Charsets
Updated Branches:
refs/heads/master eab26ec83 -> d010f32f7
WICKET-5463 resilience against unsupported Charsets
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d010f32f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d010f32f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d010f32f
Branch: refs/heads/master
Commit: d010f32f7011c4fe6f9d94d36814cc5395703826
Parents: eab26ec
Author: svenmeier <sv...@meiers.net>
Authored: Tue Jan 7 19:35:50 2014 +0100
Committer: svenmeier <sv...@meiers.net>
Committed: Tue Jan 7 19:35:50 2014 +0100
----------------------------------------------------------------------
.../apache/wicket/protocol/http/RequestUtils.java | 16 +++++++++++++---
.../wicket/protocol/http/RequestUtilsTest.java | 14 ++++++++++++++
2 files changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/d010f32f/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
index 9c16040..9a04164 100644
--- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
+++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
@@ -17,6 +17,7 @@
package org.apache.wicket.protocol.http;
import java.nio.charset.Charset;
+import java.nio.charset.UnsupportedCharsetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -204,8 +205,11 @@ public final class RequestUtils
/**
* @param request
- * the http servlet request to extract the charset from
- * @return the request's charset
+ * the http servlet request to extract the charset from
+ * @return the request's charset or a default it request is {@code null} or has an unsupported
+ * character encoding
+ *
+ * @see IRequestCycleSettings#getResponseRequestEncoding()
*/
public static Charset getCharset(HttpServletRequest request)
{
@@ -215,7 +219,13 @@ public final class RequestUtils
String charsetName = request.getCharacterEncoding();
if (charsetName != null)
{
- charset = Charset.forName(charsetName);
+ try
+ {
+ charset = Charset.forName(charsetName);
+ }
+ catch (UnsupportedCharsetException useDefault)
+ {
+ }
}
}
if (charset == null)
http://git-wip-us.apache.org/repos/asf/wicket/blob/d010f32f/wicket-core/src/test/java/org/apache/wicket/protocol/http/RequestUtilsTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/RequestUtilsTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/RequestUtilsTest.java
index bfcfa14..4c41951 100644
--- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/RequestUtilsTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/RequestUtilsTest.java
@@ -18,6 +18,7 @@ package org.apache.wicket.protocol.http;
import java.nio.charset.Charset;
+import org.apache.wicket.protocol.http.mock.MockHttpServletRequest;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.junit.Assert;
import org.junit.Test;
@@ -171,4 +172,17 @@ public class RequestUtilsTest extends Assert
RequestUtils.decodeParameters("123", params, UTF_8_CHARSET);
assertEquals("", params.get("123").toString());
}
+
+
+ @Test
+ public void charset() throws Exception
+ {
+ MockHttpServletRequest request = new MockHttpServletRequest(null, null, null);
+
+ request.setCharacterEncoding("UTF-8");
+ assertEquals(Charset.forName("UTF-8"), RequestUtils.getCharset(request));
+
+ request.setCharacterEncoding("FOO");
+ assertEquals(Charset.forName("UTF-8"), RequestUtils.getCharset(request));
+ }
}