Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-1118

Specifying null as default of a union only works if null is specified as first type in the union

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • 1.6.3
    • None
    • None
    • None

    Description

      There is some unexpected behavior I am coming across where if I specify a union as such:

      "type": ["string", "null"],
      "default": null

      I get an Exception:

      Exception in thread "main" org.apache.avro.AvroTypeException: Non-string default value for string: null
      at org.apache.avro.io.parsing.ResolvingGrammarGenerator.encode(ResolvingGrammarGenerator.java:363)
      at org.apache.avro.io.parsing.ResolvingGrammarGenerator.encode(ResolvingGrammarGenerator.java:350)
      at org.apache.avro.io.parsing.ResolvingGrammarGenerator.getBinary(ResolvingGrammarGenerator.java:293)
      at org.apache.avro.io.parsing.ResolvingGrammarGenerator.resolveRecords(ResolvingGrammarGenerator.java:271)
      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:82)
      at org.apache.avro.io.ResolvingDecoder.<init>(ResolvingDecoder.java:46)
      at org.apache.avro.io.DecoderFactory.resolvingDecoder(DecoderFactory.java:307)
      at org.apache.avro.generic.GenericDatumReader.getResolver(GenericDatumReader.java:118)
      at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:133)
      at org.apache.avro.file.DataFileStream.next(DataFileStream.java:233)
      at org.apache.avro.file.DataFileStream.next(DataFileStream.java:220)
      ...

      Whereas if I specify the schema as:

      "type": ["null", "string"],
      "default": null

      It works as expected.

      Attachments

        Activity

          People

            Unassigned Unassigned
            mpercy Mike Percy
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: