You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by bu...@apache.org on 2017/02/28 14:51:09 UTC
[3/3] avro git commit: AVRO-1997 [java] get/set defaults for fixed.
AVRO-1997 [java] get/set defaults for fixed.
closes #194.
Signed-off-by: Thiruvalluvan M G <th...@startsmartlabs.com>
Project: http://git-wip-us.apache.org/repos/asf/avro/repo
Commit: http://git-wip-us.apache.org/repos/asf/avro/commit/bd457af3
Tree: http://git-wip-us.apache.org/repos/asf/avro/tree/bd457af3
Diff: http://git-wip-us.apache.org/repos/asf/avro/diff/bd457af3
Branch: refs/heads/branch-1.8
Commit: bd457af368e4de281607835e196e78800278b94e
Parents: 9ae1391
Author: Zoltan Farkas <zo...@yahoo.com>
Authored: Tue Feb 7 13:52:08 2017 -0500
Committer: Sean Busbey <bu...@apache.org>
Committed: Tue Feb 28 08:45:27 2017 -0600
----------------------------------------------------------------------
.../main/java/org/apache/avro/SchemaBuilder.java | 4 ++++
.../apache/avro/util/internal/JacksonUtils.java | 3 ++-
.../src/test/java/org/apache/avro/TestFixed.java | 19 +++++++++++++++++++
3 files changed, 25 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/avro/blob/bd457af3/lang/java/avro/src/main/java/org/apache/avro/SchemaBuilder.java
----------------------------------------------------------------------
diff --git a/lang/java/avro/src/main/java/org/apache/avro/SchemaBuilder.java b/lang/java/avro/src/main/java/org/apache/avro/SchemaBuilder.java
index f1a1faa..ce038d4 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/SchemaBuilder.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/SchemaBuilder.java
@@ -2587,6 +2587,10 @@ public class SchemaBuilder {
s = new String(data, "ISO-8859-1");
char[] quoted = JsonStringEncoder.getInstance().quoteAsString(s);
s = "\"" + new String(quoted) + "\"";
+ } else if (o instanceof byte[]) {
+ s = new String((byte[]) o, "ISO-8859-1");
+ char[] quoted = JsonStringEncoder.getInstance().quoteAsString(s);
+ s = '\"' + new String(quoted) + '\"';
} else {
s = GenericData.get().toString(o);
}
http://git-wip-us.apache.org/repos/asf/avro/blob/bd457af3/lang/java/avro/src/main/java/org/apache/avro/util/internal/JacksonUtils.java
----------------------------------------------------------------------
diff --git a/lang/java/avro/src/main/java/org/apache/avro/util/internal/JacksonUtils.java b/lang/java/avro/src/main/java/org/apache/avro/util/internal/JacksonUtils.java
index ca98e4c..49b939e 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/util/internal/JacksonUtils.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/util/internal/JacksonUtils.java
@@ -120,7 +120,8 @@ public class JacksonUtils {
if (schema == null || schema.getType().equals(Schema.Type.STRING) ||
schema.getType().equals(Schema.Type.ENUM)) {
return jsonNode.asText();
- } else if (schema.getType().equals(Schema.Type.BYTES)) {
+ } else if (schema.getType().equals(Schema.Type.BYTES)
+ || schema.getType().equals(Schema.Type.FIXED)) {
try {
return jsonNode.getTextValue().getBytes(BYTES_CHARSET);
} catch (UnsupportedEncodingException e) {
http://git-wip-us.apache.org/repos/asf/avro/blob/bd457af3/lang/java/avro/src/test/java/org/apache/avro/TestFixed.java
----------------------------------------------------------------------
diff --git a/lang/java/avro/src/test/java/org/apache/avro/TestFixed.java b/lang/java/avro/src/test/java/org/apache/avro/TestFixed.java
new file mode 100644
index 0000000..da0ab5f
--- /dev/null
+++ b/lang/java/avro/src/test/java/org/apache/avro/TestFixed.java
@@ -0,0 +1,19 @@
+package org.apache.avro;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class TestFixed {
+
+
+ @Test
+ public void testFixedDefaultValueDrop() {
+ Schema md5 = SchemaBuilder.builder().fixed("MD5").size(16);
+ Schema frec = SchemaBuilder.builder().record("test")
+ .fields().name("hash").type(md5).withDefault(new byte[16]).endRecord();
+ Schema.Field field = frec.getField("hash");
+ Assert.assertNotNull(field.defaultVal());
+ Assert.assertArrayEquals(new byte[16], (byte[]) field.defaultVal());
+ }
+
+}