You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by rs...@apache.org on 2022/11/23 18:38:05 UTC
[avro] branch branch-1.11 updated: AVRO-3676: Produce valid toString() for UUID JSON
This is an automated email from the ASF dual-hosted git repository.
rskraba pushed a commit to branch branch-1.11
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/branch-1.11 by this push:
new f78988651 AVRO-3676: Produce valid toString() for UUID JSON
f78988651 is described below
commit f789886517c97092664d1ea9e13ad312c522d78a
Author: Anderson de Borba <an...@gmail.com>
AuthorDate: Wed Nov 23 18:37:10 2022 +0000
AVRO-3676: Produce valid toString() for UUID JSON
---
.../avro/src/main/java/org/apache/avro/generic/GenericData.java | 3 ++-
.../src/test/java/org/apache/avro/generic/TestGenericData.java | 9 +++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java b/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java
index 8f7391f59..d33f8bbf0 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java
@@ -33,6 +33,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import java.util.WeakHashMap;
import org.apache.avro.AvroMissingFieldException;
@@ -704,7 +705,7 @@ public class GenericData {
ByteBuffer bytes = ((ByteBuffer) datum).duplicate();
writeEscapedString(StandardCharsets.ISO_8859_1.decode(bytes), buffer);
buffer.append("\"");
- } else if (isNanOrInfinity(datum) || isTemporal(datum)) {
+ } else if (isNanOrInfinity(datum) || isTemporal(datum) || datum instanceof UUID) {
buffer.append("\"");
buffer.append(datum);
buffer.append("\"");
diff --git a/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java b/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
index c8690ea92..21492d1b0 100644
--- a/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
+++ b/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
@@ -45,6 +45,8 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
+
import org.apache.avro.AvroRuntimeException;
import org.apache.avro.Schema;
import org.apache.avro.Schema.Field;
@@ -432,6 +434,13 @@ public class TestGenericData {
assertEquals("\"10:10:10\"", data.toString(LocalTime.parse("10:10:10")));
}
+ @Test
+ public void testToStringConvertsUuidsAsStrings() throws Exception {
+ GenericData data = GenericData.get();
+ assertEquals("\"abf2f1e8-cece-4fdc-290a-babaca09ec74\"",
+ data.toString(UUID.fromString("abf2f1e8-cece-4fdc-290a-babaca09ec74")));
+ }
+
@Test
public void testCompare() {
// Prepare a schema for testing.