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

GenericArray fails to compare with List. SpecificRecord compare gets ClassCastException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 1.4.0
    • 1.4.1
    • java
    • None

    Description

      AVRO-637 is incomplete.

      I am unable to convert my SpecificRecord project to 1.4. It compiles, but unit tests get runtime exceptions.

      compareTo in GenericData does not handle List vs GenericArray and I get class cast exceptions.

      java.lang.ClassCastException: java.util.ArrayList cannot be cast to org.apache.avro.generic.GenericArray
      	at org.apache.avro.generic.GenericData.compare(GenericData.java:502)
      	at org.apache.avro.specific.SpecificData.compare(SpecificData.java:190)
      	at org.apache.avro.generic.GenericData.compare(GenericData.java:494)
      	at org.apache.avro.specific.SpecificData.compare(SpecificData.java:190)
      	at org.apache.avro.specific.SpecificRecordBase.compareTo(SpecificRecordBase.java:45)
      	at org.apache.avro.specific.SpecificRecordBase.equals(SpecificRecordBase.java:35)
      	at com.rr.eventdata.ViewRecord.equals(ViewRecord.java:350)
      	at com.rr.eventdata.WriteStuffTest.main(WriteStuffTest.java:143)
      	at com.rr.eventdata.WriteStuffTest.testReadWriteDataFile(WriteStuffTest.java:55)
      

      Also, an array of string in SpecificRecord ends up as List<CharSequence>.
      However, it should be List<? extends CharSequence> or else you can't assign a List<String> to it.

      Attachments

        1. AVRO-667.patch
          7 kB
          Doug Cutting
        2. AVRO-667.patch
          7 kB
          Doug Cutting
        3. AVRO-667.patch
          7 kB
          Scott Carey
        4. AVRO-667.patch
          6 kB
          Scott Carey

        Activity

          People

            scott_carey Scott Carey
            scott_carey Scott Carey
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: