Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 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.
>>>
>>
>
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB