avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "W.P. McNeill" <bill...@gmail.com>
Subject Re: How should I migrate 1.4 code to avro 1.5?
Date Sat, 03 Sep 2011 00:20:13 GMT
Still having trouble with this.

The name change was part of merging the pull request on github. My last
email details where I'm at right now. The pull request code looks correct;
I'm just trying to get it to build in my Maven environment.

On Fri, Sep 2, 2011 at 5:19 PM, Scott Carey <scottcarey@apache.org> wrote:

> 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" <billmcn@gmail.com> 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/AvroExample.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 <philip@cloudera.com>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 <billmcn@gmail.com> 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.

View raw message