Hello,
I'm getting the following exception:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 46
at org.apache.avro.io.ParsingEncoder.push(ParsingEncoder.java:55)
at org.apache.avro.io.JsonEncoder.writeArrayStart(JsonEncoder.java:231)
at
org.apache.avro.generic.GenericDatumWriter.writeArray(GenericDatumWriter.java:125)
at
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:67)
at
org.apache.avro.reflect.ReflectDatumWriter.write(ReflectDatumWriter.java:104)
at
org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:105)
at
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:65)
at
org.apache.avro.reflect.ReflectDatumWriter.write(ReflectDatumWriter.java:104)
at
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:72)
at
org.apache.avro.reflect.ReflectDatumWriter.write(ReflectDatumWriter.java:104)
at
org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:105)
at
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:65)
at
org.apache.avro.reflect.ReflectDatumWriter.write(ReflectDatumWriter.java:104)
at
org.apache.avro.generic.GenericDatumWriter.writeArray(GenericDatumWriter.java:129)
at
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:67)
Think this can be solved by changing ParsingEncoder#push() implementation
if (pos == counts.length) {
counts = Arrays.copyOf(counts, pos + 10);
}
counts[++pos] = 0;
With
if (++pos >= counts.length) {
counts = Arrays.copyOf(counts, pos + 10);
}
counts[pos] = 0;
Cheers,
--
Daniel Campelo