You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2012/09/13 22:04:48 UTC
svn commit: r1384500 - in /avro/trunk: CHANGES.txt
lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java
lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
Author: cutting
Date: Thu Sep 13 20:04:47 2012
New Revision: 1384500
URL: http://svn.apache.org/viewvc?rev=1384500&view=rev
Log:
AVRO-851. Java: Fix a bug in GenericData#toString() when escaping characters. Contributed by Jeff Mesnil.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java
avro/trunk/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1384500&r1=1384499&r2=1384500&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Thu Sep 13 20:04:47 2012
@@ -49,6 +49,9 @@ Avro 1.7.2 (unreleased)
AVRO-1155. Stringable Date test in TestReflect fails if timezone doesn't
match locale's default. Removed Date from built-in stringables. (tomwhite)
+ AVRO-851. Java: Fix a bug in GenericData#toString() when escaping
+ characters. (Jeff Mesnil via cutting)
+
Avro 1.7.1 (16 July 2012)
NEW FEATURES
Modified: avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java?rev=1384500&r1=1384499&r2=1384500&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java (original)
+++ avro/trunk/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java Thu Sep 13 20:04:47 2012
@@ -445,9 +445,9 @@ public class GenericData {
if((ch>='\u0000' && ch<='\u001F') || (ch>='\u007F' && ch<='\u009F') || (ch>='\u2000' && ch<='\u20FF')){
String hex = Integer.toHexString(ch);
builder.append("\\u");
- for(int j = 0; j < 4-builder.length(); j++)
+ for(int j = 0; j < 4 - hex.length(); j++)
builder.append('0');
- builder.append(string.toUpperCase());
+ builder.append(hex.toUpperCase());
} else {
builder.append(ch);
}
Modified: avro/trunk/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java?rev=1384500&r1=1384499&r2=1384500&view=diff
==============================================================================
--- avro/trunk/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java (original)
+++ avro/trunk/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java Thu Sep 13 20:04:47 2012
@@ -305,7 +305,8 @@ public class TestGenericData {
schema.setFields(Arrays.asList(stringField, enumField));
GenericRecord r = new GenericData.Record(schema);
- r.put(stringField.name(), "hello\nthere\"\tyou}");
+ // \u2013 is EN DASH
+ r.put(stringField.name(), "hello\nthere\"\tyou\u2013}");
r.put(enumField.name(), new GenericData.EnumSymbol(enumField.schema(),"a"));
String json = r.toString();