You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2011/01/14 10:24:23 UTC
svn commit: r1058909 - in /wicket/trunk:
wicket-core/src/main/java/org/apache/wicket/
wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/
wicket-examples/src/main/java/org/apache/wicket/examples/encodings/
wicket-examples/src/test/java/o...
Author: mgrigorov
Date: Fri Jan 14 09:24:22 2011
New Revision: 1058909
URL: http://svn.apache.org/viewvc?rev=1058909&view=rev
Log:
WICKET-3330 TextField shows HTML entities instead of UTF-8 characters
WICKET-2264 Ajax xml response is not validated correct
UNICODE escape the response characteris only if they are non-printable (ASCII < 32, except whitespaces (TAB, LF, CR)) or UNICODE encoding is requested explicitly and above 160 (no idea why 160 is used, and not 128)
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/encodings/Home.java
wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/encodings/EncodingTest.java
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java?rev=1058909&r1=1058908&r2=1058909&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java Fri Jan 14 09:24:22 2011
@@ -1727,7 +1727,7 @@ public abstract class Component
if (getFlag(FLAG_ESCAPE_MODEL_STRINGS))
{
// Escape HTML sensitive characters only. Not all none-ascii chars
- return Strings.escapeMarkup(modelString, false, true).toString();
+ return Strings.escapeMarkup(modelString, false, false).toString();
}
return modelString;
}
Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java?rev=1058909&r1=1058908&r2=1058909&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/redirect/encodingtest/RequestEncodingTest.java Fri Jan 14 09:24:22 2011
@@ -71,7 +71,7 @@ public class RequestEncodingTest extends
assertEquals("umlaut-\u00E4-\u00F6-\u00FC", file);
String document = tester.getLastResponseAsString();
- assertTrue(document.contains("umlaut-ä-ö-ü"));
+ assertTrue(document.contains("umlaut-ä-ö-ü"));
}
Modified: wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/encodings/Home.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/encodings/Home.java?rev=1058909&r1=1058908&r2=1058909&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/encodings/Home.java (original)
+++ wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/encodings/Home.java Fri Jan 14 09:24:22 2011
@@ -38,6 +38,7 @@ public class Home extends WicketExampleP
*/
public Home(final PageParameters parameters)
{
+ // the non-printable characters are: ���
add(new Label("message", "Hello world! Test: ���"));
}
Modified: wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/encodings/EncodingTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/encodings/EncodingTest.java?rev=1058909&r1=1058908&r2=1058909&view=diff
==============================================================================
--- wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/encodings/EncodingTest.java (original)
+++ wicket/trunk/wicket-examples/src/test/java/org/apache/wicket/examples/encodings/EncodingTest.java Fri Jan 14 09:24:22 2011
@@ -35,6 +35,7 @@ public class EncodingTest extends TestCa
WicketTester tester = new WicketTester();
tester.startPage(Home.class);
tester.assertContains("Wicket Examples - encodings");
- tester.assertContains("Hello world! Test: ���");
+ // the non-printable characters are: ���
+ tester.assertContains("Hello world! Test: ���");
}
}
Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java?rev=1058909&r1=1058908&r2=1058909&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java Fri Jan 14 09:24:22 2011
@@ -351,27 +351,23 @@ public final class Strings
default :
- if (convertToHtmlUnicodeEscapes)
+ int ci = 0xffff & c;
+
+ if (
+ // if this is non-printable and not whitespace (TAB, LF, CR)
+ (ci < 32 && ci != 9 && ci != 10 && ci != 13) ||
+ // or non-ASCII (XXX: why 160+ ?!) and need to UNICODE escape it
+ (convertToHtmlUnicodeEscapes && ci > 159))
{
- int ci = 0xffff & c;
- if (ci > 31 && ci < 160)
- {
- // nothing special only 7 Bit
- buffer.append(c);
- }
- else
- {
- // Not 7 Bit use the unicode system
- buffer.append("&#");
- buffer.append(Integer.toString(ci));
- buffer.append(';');
- }
+ buffer.append("&#");
+ buffer.append(Integer.toString(ci));
+ buffer.append(';');
}
else
{
+ // ASCII or whitespace
buffer.append(c);
}
-
break;
}
}