GenericRecord should work well in this context. Can you provide a complete example that fails?
Doug On Tue, Oct 15, 2013 at 3:43 PM, kulkarni.swar...@gmail.com <kulkarni.swar...@gmail.com> wrote: > Do we know if a GenericRecord is robust to schema evolution? I am currently > seeing cases where I get an exception like the following if I try to > deserialize an older record with a newer schema. > > Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8 > > at org.apache.avro.io.parsing.Symbol$Alternative.getSymbol(Symbol.java:364) > > at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:229) > > at org.apache.avro.io.parsing.Parser.advance(Parser.java:88) > > at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:206) > > at > org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:152) > > at > org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:177) > > at > org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:148) > > at > org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:139) > > > The newer schema just has a few more fields added to it and no names from > the older schema were changed. > > Is this a known issue? Should a SpecificRecord be always considered when > passivity is important? > > > Thanks, > > > -- > Swarnim