[ 
https://issues.apache.org/jira/browse/AVRO-667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12910015#action_12910015
 ] 

Scott Carey commented on AVRO-667:
----------------------------------

Hmm, I just realized this patch doesn't keep hashCode() consistent with 
equals().  We can only make this consistent for CharSequence if we .toString() 
the result... which is slow.  Although for Utf8 we could just change hashCode() 
in utf8 into:

{code}
this.toString().hashCode(); 
{code}
which will at least cache the result.


> 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