avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Cutting (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AVRO-667) GenericArray fails to compare with List. SpecificRecord compare gets ClassCastException
Date Thu, 16 Sep 2010 17:37:33 GMT

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

Doug Cutting updated AVRO-667:

    Attachment: AVRO-667.patch

My intent is that, for arrays, the generic implementation will accept arbitrary Collection
implementations.  I've amended your patch to permit this and augmented the test you added.
 We need more non-List Collection tests, but there's reflection-based code in Hadoop that
requires this.

Other than that, +1.

> 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-667.patch, 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.

View raw message