[ https://issues.apache.org/jira/browse/AVRO-2366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Raman Gupta updated AVRO-2366: ------------------------------ Description: Followup to AVRO-2035. I am testing 1.9 SNAPSHOT. I set `Schema.Parser.setValidateDefaults` to false, and still get a failure at compile-time if the default does not match the schema. For example, a field definition of: {"name": "name", "type": "string", "default": null} Should this definition succeed if `setValidateDefaults(false)` is called? If not, should the `setValidateDefaults` method just be removed? The exception is: {\{ at org.apache.avro.Schema.validateDefault(Schema.java:1482)}} \{{ at org.apache.avro.Schema.access$300(Schema.java:84)}} \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:493)}} \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:485)}} \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:504)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.addStringType(SpecificCompiler.java:689)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.addStringType(SpecificCompiler.java:668)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.compile(SpecificCompiler.java:598)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.compileToDestination(SpecificCompiler.java:527)}} was: Followup to AVRO-2035. I am testing 1.9 SNAPSHOT. I set `Schema.Parser.setValidateDefaults` to false, and still get a failure if the default does not match the schema. For example, a field definition of: {"name": "name", "type": "string", "default": null} Should this definition succeed if `setValidateDefaults(false)` is called? If not, should the `setValidateDefaults` method just be removed? The exception is: {{Caused by: org.apache.avro.AvroTypeException: Invalid default for field name: null not a {"type":"string","avro.java.string":"String"}}} \{{ at org.apache.avro.Schema.validateDefault(Schema.java:1482)}} \{{ at org.apache.avro.Schema.access$300(Schema.java:84)}} \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:493)}} \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:485)}} \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:504)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.addStringType(SpecificCompiler.java:689)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.addStringType(SpecificCompiler.java:668)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.compile(SpecificCompiler.java:598)}} \{{ at org.apache.avro.compiler.specific.SpecificCompiler.compileToDestination(SpecificCompiler.java:527)}} > 1.9 > ---- > > Key: AVRO-2366 > URL: https://issues.apache.org/jira/browse/AVRO-2366 > Project: Apache Avro > Issue Type: Bug > Affects Versions: 1.9.0 > Reporter: Raman Gupta > Priority: Major > > Followup to AVRO-2035. > I am testing 1.9 SNAPSHOT. I set `Schema.Parser.setValidateDefaults` to > false, and still get a failure at compile-time if the default does not match > the schema. For example, a field definition of: > {"name": "name", "type": "string", "default": null} > Should this definition succeed if `setValidateDefaults(false)` is called? If > not, should the `setValidateDefaults` method just be removed? > The exception is: > {\{ at org.apache.avro.Schema.validateDefault(Schema.java:1482)}} > \{{ at org.apache.avro.Schema.access$300(Schema.java:84)}} > \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:493)}} > \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:485)}} > \{{ at org.apache.avro.Schema$Field.<init>(Schema.java:504)}} > \{{ at > org.apache.avro.compiler.specific.SpecificCompiler.addStringType(SpecificCompiler.java:689)}} > \{{ at > org.apache.avro.compiler.specific.SpecificCompiler.addStringType(SpecificCompiler.java:668)}} > \{{ at > org.apache.avro.compiler.specific.SpecificCompiler.compile(SpecificCompiler.java:598)}} > \{{ at > org.apache.avro.compiler.specific.SpecificCompiler.compileToDestination(SpecificCompiler.java:527)}} > -- This message was sent by Atlassian JIRA (v7.6.3#76005)