[ 
https://issues.apache.org/jira/browse/AVRO-667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Scott Carey updated AVRO-667:
-----------------------------

    Attachment: AVRO-667.patch

This patch makes GenericData compatible with Lists and CharSequence for 
equals() and hashCode().

It also adds unit tests for those two functions that are more complete and 
demonstrate the issue.  The current code coverage, after these tests, is 32% 
for GenericData.  We should increase that to 90%+, but perhaps in another 
ticket.

> GenericArray fails to compare with List.  SpecificRecord compare gets 
> ClassCastException
> ----------------------------------------------------------------------------------------
>
>                 Key: AVRO-667
>                 URL: https://issues.apache.org/jira/browse/AVRO-667
>             Project: Avro
>          Issue Type: Bug
>    Affects Versions: 1.4.0
>            Reporter: Scott Carey
>            Assignee: Scott Carey
>            Priority: Blocker
>             Fix For: 1.4.1
>
>         Attachments: AVRO-667.patch
>
>
> 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.
> {noformat}
> 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)
> {noformat}
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to