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

Doug Cutting commented on AVRO-1057:
------------------------------------

Yes, this could be checked more aggressively.  The existing logic for this is 
in RecordBuilderBase#defaultValue().  It writes the default JSON parse tree, 
then reads it into the appropriate Avro data structure (generic, specific, 
reflect).  The writing does the error checking, and that's in 
ResolvingGrammarGenerator#encode.  So the compiler and/or parser could call 
that.  We probably don't want to check it unconditionally in the schema parser, 
as schema parsing is performance sensitive.
                
> Java builder API fails when default value does not match the first type in a 
> union
> ----------------------------------------------------------------------------------
>
>                 Key: AVRO-1057
>                 URL: https://issues.apache.org/jira/browse/AVRO-1057
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.6.3
>            Reporter: Christophe Taton
>            Priority: Minor
>
> The following definition works fine with the builder:
> record Rec {
>   union { boolean, null } field = false;
> }
> but this one fails:
> record Rec {
>   union { boolean, null } field = null;
> }
> Rec.newBuilder().build() fails with this error:
> org.apache.avro.AvroRuntimeException: org.apache.avro.AvroTypeException: 
> Non-boolean default for boolean: null
>       at Rec$Builder.build
> Caused by: org.apache.avro.AvroTypeException: Non-boolean default for 
> boolean: null
>       at 
> org.apache.avro.io.parsing.ResolvingGrammarGenerator.encode(ResolvingGrammarGenerator.java:393)
>       at 
> org.apache.avro.io.parsing.ResolvingGrammarGenerator.encode(ResolvingGrammarGenerator.java:350)
>       at 
> org.apache.avro.data.RecordBuilderBase.defaultValue(RecordBuilderBase.java:178)
>       at Rec$Builder.build

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to