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

Field deletion not possible for ReflectData: NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.7.6
    • None
    • java

    Description

      Actual behaviour:
      I have a field in my reflection-based schema like this:

      @Nullable @AvroDefault("null")
      public Long someField;
      

      When removing this field, parsing the previous serialized blob yields NullPointerException:

      java.lang.NullPointerException
      	at org.apache.avro.reflect.ReflectData.setField(ReflectData.java:128)
      	at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193)
      	at org.apache.avro.reflect.ReflectDatumReader.readField(ReflectDatumReader.java:230)
      	at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183)
      	at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:151)
      	at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:142)
      	at org.apache.avro.file.DataFileStream.next(DataFileStream.java:233)
      	at org.apache.avro.file.DataFileStream.next(DataFileStream.java:220)
      	at ReflectDataFieldRemovalTest.testFieldRemoval(ReflectDataFieldRemovalTest.java:41)
      

      Expected behaviour:
      Field removal is crucial for schema evolution and must be possible with ReflectData.

      Attachments

        1. ReflectData.java.patch
          0.5 kB
          O. Reißig
        2. RemovalOfUnionSubtype.java
          3 kB
          O. Reißig
        3. ReflectDataFieldRemovalTest.java
          2 kB
          Doug Cutting
        4. AVRO-1532.patch
          1 kB
          Doug Cutting
        5. ReflectDataFieldRemovalTest.java
          3 kB
          O. Reißig

        Activity

          People

            Unassigned Unassigned
            oreissig O. Reißig
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: