avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeffrey Mullins (BLOOMBERG/ BOSTON)" <jmullin...@bloomberg.net>
Subject GenericData union validation - IndexOutOfBoundsException
Date Tue, 09 Dec 2014 20:30:24 GMT

When invoking GenericData.get().validate() with a union schema containing multiple record
schemas an IndexOutOfBoundsException is possible. 

The exception results under the following conditions:
  1) Union contains multiple record schemas
  2) The first record schema in the union contains more fields than subsequent record schemas
  3) validate() is invoked with the union schema and a record of one of the subsequent record

Below is a simple unit test which reproduces the exception.

  public void testValidateUnion() {
      Schema type1Schema = SchemaBuilder.record("Type1")

      Schema type2Schema = SchemaBuilder.record("Type2")

      Schema unionSchema = SchemaBuilder.unionOf()

    GenericRecord record = new GenericData.Record(type2Schema);
    record.put("myString", "myValue");
    GenericData.get().validate(unionSchema, record);

I'm happy to submit a JIRA for this issue, but thought I'd check in with the mailing list
before doing so.

View raw message