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

Reply via email to