Skip to content

Commit

Permalink
AVRO-2383: NPE during Schema.applyAliases (#510)
Browse files Browse the repository at this point in the history
(cherry picked from commit 196777c)
  • Loading branch information
rocketraman authored and Fokko committed Apr 29, 2019
1 parent 58d7dfa commit 8dbe05a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lang/java/avro/src/main/java/org/apache/avro/Schema.java
Original file line number Diff line number Diff line change
Expand Up @@ -888,7 +888,7 @@ public boolean equals(Object o) {
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();
Expand Down
15 changes: 15 additions & 0 deletions lang/java/ipc/src/test/java/org/apache/avro/TestSchema.java
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,21 @@ public void testAliases() {
assertEquals(s2, s3);
}

@Test
public void testAliasesSelfReferential() {
String t1 = "{\"type\":\"record\",\"name\":\"a\",\"fields\":[{\"name\":\"f\",\"type\":{\"type\":\"record\",\"name\":\"C\",\"fields\":[{\"name\":\"c\",\"type\":{\"type\":\"array\",\"items\":[\"null\",\"C\"]}}]}}]}";
String t2 = "{\"type\":\"record\",\"name\":\"x\",\"fields\":[{\"name\":\"f\",\"type\":{\"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);
}
Expand Down

0 comments on commit 8dbe05a

Please sign in to comment.