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.