[ https://issues.apache.org/jira/browse/AVRO-2035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16374608#comment-16374608 ]
ASF subversion and git services commented on AVRO-2035: ------------------------------------------------------- Commit 26894395cb480790488e0db283f8a503bd093909 in avro's branch refs/heads/master from [~cutting] [ https://gitbox.apache.org/repos/asf?p=avro.git;h=2689439 ] AVRO-2035. Java: enable default validation for schemas created by constructors. > enable validation of default values in schemas by default > --------------------------------------------------------- > > Key: AVRO-2035 > URL: https://issues.apache.org/jira/browse/AVRO-2035 > Project: Avro > Issue Type: Bug > Components: java > Affects Versions: 1.8.1 > Reporter: radai rosenblatt > Assignee: Doug Cutting > Priority: Major > Fix For: 1.9.0 > > Attachments: AVRO-2035.patch > > > suppose i have the following schema evolution: > {code} > { > "name": "Bob", > "type": "record", > "fields": [ > {"name": "f1", "type": "int"} > ] > } > {code} > and then: > {code} > { > "name": "Bob", > "type": "record", > "fields": [ > {"name": "f1", "type": "int"}, > {"name": "f2", "type": "boolean", "default": "true"} > ] > } > {code} > the default value for "f2" is specified as the _STRING_ "true" (and not the > literal boolean true). > if this default value is ever accessed (when reading a gen1-serialized object > as a gen2) we get this: > {code} > org.apache.avro.AvroTypeException: Non-boolean default for boolean: "true" > at > org.apache.avro.io.parsing.ResolvingGrammarGenerator.encode(ResolvingGrammarGenerator.java:408) > at > org.apache.avro.io.parsing.ResolvingGrammarGenerator.getBinary(ResolvingGrammarGenerator.java:307) > at > org.apache.avro.io.parsing.ResolvingGrammarGenerator.resolveRecords(ResolvingGrammarGenerator.java:285) > at > org.apache.avro.io.parsing.ResolvingGrammarGenerator.generate(ResolvingGrammarGenerator.java:118) > at > org.apache.avro.io.parsing.ResolvingGrammarGenerator.generate(ResolvingGrammarGenerator.java:50) > at org.apache.avro.io.ResolvingDecoder.resolve(ResolvingDecoder.java:85) > at org.apache.avro.io.ResolvingDecoder.<init>(ResolvingDecoder.java:49) > at > org.apache.avro.io.DecoderFactory.resolvingDecoder(DecoderFactory.java:307) > at > org.apache.avro.generic.GenericDatumReader.getResolver(GenericDatumReader.java:127) > at > org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142) > {code} > yet Schema.parse() passes for this -- This message was sent by Atlassian JIRA (v7.6.3#76005)