You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/04/29 17:29:04 UTC
svn commit: r939345 -
/pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java
Author: gbrown
Date: Thu Apr 29 15:29:04 2010
New Revision: 939345
URL: http://svn.apache.org/viewvc?rev=939345&view=rev
Log:
Ignore ISO control characters in Strings in JSONSerializer.
Modified:
pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java
Modified: pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java?rev=939345&r1=939344&r2=939345&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/json/JSONSerializer.java Thu Apr 29 15:29:04 2010
@@ -310,40 +310,43 @@ public class JSONSerializer implements S
c = reader.read();
while (c != -1 && c != t) {
- if (c == '\\') {
- c = reader.read();
+ if (!Character.isISOControl(c)) {
+ if (c == '\\') {
+ c = reader.read();
- if (c == 'b') {
- c = '\b';
- } else if (c == 'f') {
- c = '\f';
- } else if (c == 'n') {
- c = '\n';
- } else if (c == 'r') {
- c = '\r';
- } else if (c == 't') {
- c = '\t';
- } else if (c == 'u') {
- StringBuilder unicodeBuilder = new StringBuilder();
- while (unicodeBuilder.length() < 4) {
- c = reader.read();
- unicodeBuilder.append((char)c);
- }
+ if (c == 'b') {
+ c = '\b';
+ } else if (c == 'f') {
+ c = '\f';
+ } else if (c == 'n') {
+ c = '\n';
+ } else if (c == 'r') {
+ c = '\r';
+ } else if (c == 't') {
+ c = '\t';
+ } else if (c == 'u') {
+ StringBuilder unicodeBuilder = new StringBuilder();
+ while (unicodeBuilder.length() < 4) {
+ c = reader.read();
+ unicodeBuilder.append((char)c);
+ }
- String unicode = unicodeBuilder.toString();
- c = (char)Integer.parseInt(unicode, 16);
- } else {
- if (!(c == '\\'
- || c == '/'
- || c == '\"'
- || c == '\''
- || c == t)) {
- throw new SerializationException("Unsupported escape sequence in input stream.");
+ String unicode = unicodeBuilder.toString();
+ c = (char)Integer.parseInt(unicode, 16);
+ } else {
+ if (!(c == '\\'
+ || c == '/'
+ || c == '\"'
+ || c == '\''
+ || c == t)) {
+ throw new SerializationException("Unsupported escape sequence in input stream.");
+ }
}
}
+
+ stringBuilder.append((char)c);
}
- stringBuilder.append((char)c);
c = reader.read();
}