Chris Egerton created AVRO-2322:
-----------------------------------
Summary: Compatibility checks report false positive when record
fullnames differ
Key: AVRO-2322
URL: https://issues.apache.org/jira/browse/AVRO-2322
Project: Apache Avro
Issue Type: Bug
Components: java
Affects Versions: 1.8.2, 1.8.1
Reporter: Chris Egerton
When testing for backward compatibility between two record schemas which differ
in their fullnames (namespace + name) but are otherwise identical, a false
positive is reported.
Example:
{code:java}
// Create two schemas with differing fullnames and no fields
Schema writtenSchema = Schema.createRecord("write", null, "namespace", false,
Collections.emptyList());
Schema readSchema = Schema.createRecord("read", null, "namespace", false,
Collections.emptyList());
// Validate the two schemas for compatibility
// Should throw a SchemaValidationException; does not
new
SchemaValidatorBuilder().canReadStrategy().validateLatest().validate(readSchema,
Collections.singleton(writtenSchema));{code}
It looks like this behavior partially stems from discussion on AVRO-1590,
although I'm unfortunately not familiar enough with some of the concepts
brought up there to understand why it's advantageous to deviate from the spec
like this.
I'd be happy to work on a fix myself; just want to understand how to implement
this correctly without stepping on the decisions of others before opening a PR.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)