[prev in list] [next in list] [prev in thread] [next in thread]
List: avro-commits
Subject: [avro] branch master updated: AVRO-2383: NPE during Schema.applyAliases (#510)
From: fokko () apache ! org
Date: 2019-04-29 7:20:35
Message-ID: 155652243531.7757.16915150109377271882 () gitbox ! apache ! org
[Download RAW message or body]
This is an automated email from the ASF dual-hosted git repository.
fokko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/master by this push:
new 196777c AVRO-2383: NPE during Schema.applyAliases (#510)
196777c is described below
commit 196777ccc2e698e9dba153d48a08ef4b68b144a1
Author: Raman Gupta <rocketraman@gmail.com>
AuthorDate: Mon Apr 29 03:20:29 2019 -0400
AVRO-2383: NPE during Schema.applyAliases (#510)
---
lang/java/avro/src/main/java/org/apache/avro/Schema.java | 2 +-
.../ipc/src/test/java/org/apache/avro/TestSchema.java | 15 +++++++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/lang/java/avro/src/main/java/org/apache/avro/Schema.java \
b/lang/java/avro/src/main/java/org/apache/avro/Schema.java index 29c4a3a..f4dda26 \
100644
--- a/lang/java/avro/src/main/java/org/apache/avro/Schema.java
+++ b/lang/java/avro/src/main/java/org/apache/avro/Schema.java
@@ -886,7 +886,7 @@ public abstract class Schema extends JsonProperties {
boolean first = seen.isEmpty();
try {
seen.add(here);
- return fields.equals(((RecordSchema) o).fields);
+ return Objects.equals(fields, that.fields);
} finally {
if (first)
seen.clear();
diff --git a/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java \
b/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java index 8f77eb5..cd5413a \
100644
--- a/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java
+++ b/lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java
@@ -594,6 +594,21 @@ public class TestSchema {
assertEquals(s2, s3);
}
+ @Test
+ public void testAliasesSelfReferential() {
+ String t1 = "{\"type\":\"record\",\"name\":\"a\",\"fields\":[{\"name\":\"f\",\"ty \
pe\":{\"type\":\"record\",\"name\":\"C\",\"fields\":[{\"name\":\"c\",\"type\":{\"type\":\"array\",\"items\":[\"null\",\"C\"]}}]}}]}";
+ String t2 = "{\"type\":\"record\",\"name\":\"x\",\"fields\":[{\"name\":\"f\",\"t \
ype\":{\"type\":\"record\",\"name\":\"C\",\"fields\":[{\"name\":\"d\",\"type\":{\"type \
\":\"array\",\"items\":[\"null\",\"C\"]},\"aliases\":[\"c\"]}]}}],\"aliases\":[\"a\"]}";
+ Schema s1 = new Schema.Parser().parse(t1);
+ Schema s2 = new Schema.Parser().parse(t2);
+
+ assertEquals(s1.getAliases(), Collections.emptySet());
+ assertEquals(s2.getAliases(), Collections.singleton("a"));
+
+ Schema s3 = Schema.applyAliases(s1, s2);
+ assertNotSame(s2, s3);
+ assertEquals(s2, s3);
+ }
+
private static void check(File dst, String schemaJson, String defaultJson, Object \
defaultValue) throws Exception { check(dst, schemaJson, defaultJson, defaultValue, \
true); }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic