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 2016/10/06 22:08:05 UTC
avro git commit: AVRO-1929: Java: SchemaCompatibility fails to
recognize string<->bytes promotion. Contributed by Anders Sundelin.
Repository: avro
Updated Branches:
refs/heads/master ef0e1a1a0 -> 0a74e1e0f
AVRO-1929: Java: SchemaCompatibility fails to recognize string<->bytes promotion. Contributed by Anders Sundelin.
Project: http://git-wip-us.apache.org/repos/asf/avro/repo
Commit: http://git-wip-us.apache.org/repos/asf/avro/commit/0a74e1e0
Tree: http://git-wip-us.apache.org/repos/asf/avro/tree/0a74e1e0
Diff: http://git-wip-us.apache.org/repos/asf/avro/diff/0a74e1e0
Branch: refs/heads/master
Commit: 0a74e1e0fb45dae8785f204f17d05bd86d0a2d2b
Parents: ef0e1a1
Author: Doug Cutting <cu...@apache.org>
Authored: Thu Oct 6 15:07:12 2016 -0700
Committer: Doug Cutting <cu...@apache.org>
Committed: Thu Oct 6 15:07:12 2016 -0700
----------------------------------------------------------------------
CHANGES.txt | 3 +++
.../main/java/org/apache/avro/SchemaCompatibility.java | 13 +++++++++++--
.../java/org/apache/avro/TestSchemaCompatibility.java | 8 +++++---
3 files changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/avro/blob/0a74e1e0/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 4a48a58..f2d01ed 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -78,6 +78,9 @@ Trunk (not yet released)
AVRO-1860: Java: Field#DefaultVal() returns Ints for Long fields.
(Gabor Szadovszky via cutting)
+ AVRO-1929: Java: SchemaCompatibility fails to recognize
+ string<->bytes promotion. (Anders Sundelin via cutting)
+
Avro 1.8.1 (14 May 2016)
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/avro/blob/0a74e1e0/lang/java/avro/src/main/java/org/apache/avro/SchemaCompatibility.java
----------------------------------------------------------------------
diff --git a/lang/java/avro/src/main/java/org/apache/avro/SchemaCompatibility.java b/lang/java/avro/src/main/java/org/apache/avro/SchemaCompatibility.java
index e62ea0b..9ac6dc8 100644
--- a/lang/java/avro/src/main/java/org/apache/avro/SchemaCompatibility.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/SchemaCompatibility.java
@@ -379,8 +379,17 @@ public class SchemaCompatibility {
? SchemaCompatibilityType.COMPATIBLE
: SchemaCompatibilityType.INCOMPATIBLE;
}
- case BYTES: return SchemaCompatibilityType.INCOMPATIBLE;
- case STRING: return SchemaCompatibilityType.INCOMPATIBLE;
+ case BYTES: {
+ return (writer.getType() == Type.STRING)
+ ? SchemaCompatibilityType.COMPATIBLE
+ : SchemaCompatibilityType.INCOMPATIBLE;
+ }
+ case STRING: {
+ return (writer.getType() == Type.BYTES)
+ ? SchemaCompatibilityType.COMPATIBLE
+ : SchemaCompatibilityType.INCOMPATIBLE;
+ }
+
case ARRAY: return SchemaCompatibilityType.INCOMPATIBLE;
case MAP: return SchemaCompatibilityType.INCOMPATIBLE;
case FIXED: return SchemaCompatibilityType.INCOMPATIBLE;
http://git-wip-us.apache.org/repos/asf/avro/blob/0a74e1e0/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java
----------------------------------------------------------------------
diff --git a/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java b/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java
index 9b8cde1..5ff7225 100644
--- a/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java
+++ b/lang/java/avro/src/test/java/org/apache/avro/TestSchemaCompatibility.java
@@ -17,8 +17,8 @@
*/
package org.apache.avro;
-import static junit.framework.Assert.assertEquals;
import static org.apache.avro.SchemaCompatibility.checkReaderWriterCompatibility;
+import static org.junit.Assert.assertEquals;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
@@ -352,6 +352,10 @@ public class TestSchemaCompatibility {
new ReaderWriter(ENUM1_AB_SCHEMA, ENUM1_AB_SCHEMA),
new ReaderWriter(ENUM1_ABC_SCHEMA, ENUM1_AB_SCHEMA),
+
+ // String-to/from-bytes, introduced in Avro 1.7.7
+ new ReaderWriter(STRING_SCHEMA, BYTES_SCHEMA),
+ new ReaderWriter(BYTES_SCHEMA, STRING_SCHEMA),
// Tests involving unions:
new ReaderWriter(EMPTY_UNION_SCHEMA, EMPTY_UNION_SCHEMA),
@@ -412,11 +416,9 @@ public class TestSchemaCompatibility {
new ReaderWriter(STRING_SCHEMA, BOOLEAN_SCHEMA),
new ReaderWriter(STRING_SCHEMA, INT_SCHEMA),
- new ReaderWriter(STRING_SCHEMA, BYTES_SCHEMA),
new ReaderWriter(BYTES_SCHEMA, NULL_SCHEMA),
new ReaderWriter(BYTES_SCHEMA, INT_SCHEMA),
- new ReaderWriter(BYTES_SCHEMA, STRING_SCHEMA),
new ReaderWriter(INT_ARRAY_SCHEMA, LONG_ARRAY_SCHEMA),
new ReaderWriter(INT_MAP_SCHEMA, INT_ARRAY_SCHEMA),