avro-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gabriel Reid (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AVRO-1046) ReflectDatumReader doesn't work with SpecificRecords containing an array of values
Date Sat, 12 May 2012 16:10:48 GMT

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

Gabriel Reid commented on AVRO-1046:

Yes, that's excellent, thanks! 

I was originally looking down the path of updating ReflectDatumReader, but clearly didn't
realize how (relatively) easy it could be.

BTW, sorry for the failing unit tests -- I thought I was in the clear as all of the tests
in the avro sub-project were passing, so I didn't see that the ipc sub-project had failing
tests (assuming it was there that you were getting failing tests?)
> ReflectDatumReader doesn't work with SpecificRecords containing an array of values
> ----------------------------------------------------------------------------------
>                 Key: AVRO-1046
>                 URL: https://issues.apache.org/jira/browse/AVRO-1046
>             Project: Avro
>          Issue Type: Bug
>          Components: java
>    Affects Versions: 1.6.2
>            Reporter: Gabriel Reid
>            Assignee: Doug Cutting
>            Priority: Minor
>             Fix For: 1.7.0
>         Attachments: AVRO-1046.patch, AVRO-1046.patch
> When a ReflectDatumReader is used to read implementations of SpecificRecord, it fails
if the SpecificRecord includes an (avro) array. This appears to be due to the fact that the
newArray method in ReflectDatumReader works differently (based on a reflection-based schema)
than the newArray method in GenericDatumReader (which is the base class of the DatumReaders).
> The included patch simply removes the delegation to SpecificData for the creation of
a schema in the case of a SpecificRecord. My assumption is that the delegation to SpecificData
is for performance reasons.
> The rationale in removing the delegation to SpecificData is that a) it doesn't work completely
correctly, as demonstrated, and b) if a user is using ReflectDatumReader (instead of SpecificDatumReader)
to read SpecificRecords, there may be other underlying reasons that reflection is specifically
chosen, and so this intention should not be undermined by the delegation to SpecificData.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message