[ 
https://issues.apache.org/jira/browse/AVRO-2400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16849231#comment-16849231
 ] 

Raymie Stata commented on AVRO-2400:
------------------------------------

[~jtolar] made the following observation via email:

bq. Note that the resolver and SchemaCompatibility disagree on this. (The test 
provided would be marked 'incompatible' by SchemaCompatibility...and would have 
been in 1.8.x as well, even though the actual parser/resolver allowed it). If 
the spec is indeed updated per @rstata's suggestion then 
SchemaCompatibility.java should probably be updated to match as well.

Yes, good catch, lines 97 and 98 of SchemaCompatibility also need to be updated 
to use getName vs getFullName.  Note, however, that line 102 needs to use the 
writer's _full,_ because the aliasing part of the spec is clear as to what to 
do with qualified vs unqualified names.

> Avro 1.9.0 can't resolve schemas that can be resolved in 1.8.2
> --------------------------------------------------------------
>
>                 Key: AVRO-2400
>                 URL: https://issues.apache.org/jira/browse/AVRO-2400
>             Project: Apache Avro
>          Issue Type: Bug
>          Components: java
>            Reporter: Jacob Tolar
>            Priority: Blocker
>             Fix For: 1.10.0, 1.9.1
>
>
> The failure occurs in ResolvingGrammarGenerator when reader and writer schema 
> have an array of records with different full names (e.g. different 
> namespace). 
> {code:java}
> Exception in thread "main" java.lang.ClassCastException: 
> org.apache.avro.Resolver$ReaderUnion cannot be cast to 
> org.apache.avro.Resolver$Container{code}
> Avro 1.8.2 allowed this behavior but it now fails in 1.9.0. Looking at the 
> jiras and code, I don't believe this was intentional ( AVRO-2275,  
> [https://github.com/apache/avro/commit/39d959e1c6a1f339f03dab18289e47f27c10be7f]
>   ).
>  
> It looks like there were some attempts to keep compatibility ( 
> [https://github.com/apache/avro/blob/branch-1.9/lang/java/avro/src/main/java/org/apache/avro/Resolver.java]
>  , e.g. see the commented out check for w.getFullName() in resolve()) but 
> this case was missed.
>  
> See this simple example to reproduce. 
> [https://gist.github.com/jacobtolar/c88d43ab4e8767227891e5cdc188ffad]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to