You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Chris Egerton (JIRA)" <ji...@apache.org> on 2019/02/14 23:01:00 UTC

[jira] [Created] (AVRO-2322) Compatibility checks report false positive when record fullnames differ

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)