Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Avro >> mail # user >> How should I migrate 1.4 code to avro 1.5?


Copy link to this message
-
Re: How should I migrate 1.4 code to avro 1.5?
Are you still having trouble with this?  I noticed that the code has changed
and you are using MyPair instead of Pair.  Was there a naming conflict bug
with Avro's Pair.java?

-Scott

On 9/2/11 3:46 PM, "W.P. McNeill" <[EMAIL PROTECTED]> wrote:

> I made changes that got rid of all the deprecated calls.  I think I am using
> the 1.5 interface correctly.  However, I get a runtime error when I try to
> deserialize into a class using a SpecificDataumReader.  The problem starts at
> line 62 of AvroExample.java
> <https://github.com/wpm/AvroExample/blob/master/src/main/java/wpmcn/AvroExampl
> e.java#L62> .  The code looks like this:
>
>       DatumReader<Pair> reader = new SpecificDatumReader<Pair>(Pair.class);
>       BinaryDecoder decoder > DecoderFactory.get().binaryDecoder(out.toByteArray(), null);
>       Pair result = reader.read(null, decoder);
>       System.out.printf("Left: %s, Right: %s\n", result.left, result.right);
>
> Where Pair is an object I have SpecificRecord that I have in this project.
> When I deserialize with reader.read() I get the following runtime error:
>
> Exception in thread "main" java.lang.ClassCastException:
> org.apache.avro.generic.GenericData$Record cannot be cast to wpmcn.Pair
> at wpmcn.AvroExample.serializeSpecific(AvroExample.java:64)
> at wpmcn.AvroExample.main(AvroExample.java:73)
>
> When I step into the debugger I see that the GenericDatumReader.read()
> function has type D as GenericData.
>
> Presumably I'm calling something wrong but I can't figure out what.
>
> On Fri, Sep 2, 2011 at 3:02 PM, Philip Zeyliger <[EMAIL PROTECTED]> wrote:
>> EncoderFactory.get().binaryEncoder(...).
>>
>> I encourage you to file a JIRA and submit a patch to AVRO.  Having example
>> code in the code base seems like a win to me.
>>
>> -- Philip
>>
>>
>> On Fri, Sep 2, 2011 at 2:41 PM, W.P. McNeill <[EMAIL PROTECTED]> wrote:
>>> I'm new to Avro. Since I'm having trouble finding simple examples online I'm
>>> writing one of my own that I'm putting on github.
>>>
>>> https://github.com/wpm/AvroExample
>>>
>>> Hopefully, this will be of help to people like me who are also having
>>> trouble finding simple code examples.
>>>
>>> I want to get this compiling without of hitch in Maven. I had it running
>>> with a 1.4 version of Avro, but when I changed that to 1.5, some of the code
>>> no longer works. Specifically, BinaryEncoder can no longer be instantiated
>>> directly because it is now an abstract class (AvroExample.java: line 33) and
>>> DecoderFactory.defaultFactory is deprecated (AvroExample.java: line 41).
>>>
>>> How should I modify this code so that it works with the latest and greatest
>>> version of Avro?  I looked through the Release Notes, but the answers
>>> weren't obvious.
>>>
>>> Thanks.
>>>
>>
>