You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by bl...@apache.org on 2009/09/29 21:28:38 UTC
svn commit: r820072 - in /incubator/wink/trunk/wink-common/src:
main/java/org/apache/wink/common/internal/uri/UriEncoder.java
test/java/org/apache/wink/common/uri/UriEncoderTest.java
Author: bluk
Date: Tue Sep 29 19:28:37 2009
New Revision: 820072
URL: http://svn.apache.org/viewvc?rev=820072&view=rev
Log:
ArrayIndexOutOfBoundsEx for international chars
See [WINK-208]
Modified:
incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/uri/UriEncoder.java
incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/uri/UriEncoderTest.java
Modified: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/uri/UriEncoder.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/uri/UriEncoder.java?rev=820072&r1=820071&r2=820072&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/uri/UriEncoder.java (original)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/uri/UriEncoder.java Tue Sep 29 19:28:37 2009
@@ -457,7 +457,7 @@
if (d1 >= 0 && d2 >= 0) {
v = d1;
v = v << 4 | d2;
- if (decodeChars != null && !decodeChars[v]) {
+ if (decodeChars != null && (v >= decodeChars.length || !decodeChars[v])) {
buffer.put((byte)string.charAt(i));
buffer.put(normalizedHexDigits[string.charAt(i + 1)]);
buffer.put(normalizedHexDigits[string.charAt(i + 2)]);
Modified: incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/uri/UriEncoderTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/uri/UriEncoderTest.java?rev=820072&r1=820071&r2=820072&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/uri/UriEncoderTest.java (original)
+++ incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/uri/UriEncoderTest.java Tue Sep 29 19:28:37 2009
@@ -21,6 +21,7 @@
package org.apache.wink.common.uri;
import org.apache.wink.common.internal.uri.UriEncoder;
+import org.apache.wink.common.internal.utils.UriHelper;
import junit.framework.TestCase;
@@ -119,4 +120,11 @@
public void testDecodeQuery() {
assertEquals("a b c", UriEncoder.decodeQuery("a+b%20c"));
}
+
+ public void testDecodeInternationalURI() {
+ // some text editors do not like the UTF-8 encoding so just making
+ // sure it doesn't throw an exception for now.
+ // see [WINK-208]
+ assertNotNull(UriHelper.normalize("http://l/%E3%81%82%E3%81%84"));
+ }
}