Program: 7383
Project: 7383
Buggy source:
@Test public void testFlatRecord() throws Exception {
  Schema schema=Schema.recordOf("String_Node_Str",Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.INT)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.LONG)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.BOOLEAN)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.BYTES)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.DOUBLE)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.FLOAT)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.STRING)),Schema.Field.of("String_Node_Str",Schema.arrayOf(Schema.of(Schema.Type.INT))),Schema.Field.of("String_Node_Str",Schema.mapOf(Schema.of(Schema.Type.STRING),Schema.of(Schema.Type.INT))),Schema.Field.of("String_Node_Str",Schema.unionOf(Schema.of(Schema.Type.STRING),Schema.of(Schema.Type.NULL))));
  FormatSpecification formatSpecification=new FormatSpecification(RecordFormats.AVRO,schema,Collections.<String,String>emptyMap());
  org.apache.avro.Schema avroSchema=convertSchema(schema);
  GenericRecord record=new GenericRecordBuilder(avroSchema).set("String_Node_Str",Integer.MAX_VALUE).set("String_Node_Str",Long.MAX_VALUE).set("String_Node_Str",false).set("String_Node_Str",ByteBuffer.wrap(Bytes.toBytes("String_Node_Str"))).set("String_Node_Str",Double.MAX_VALUE).set("String_Node_Str",Float.MAX_VALUE).set("String_Node_Str","String_Node_Str").set("String_Node_Str",Lists.newArrayList(1,2,3)).set("String_Node_Str",ImmutableMap.of("String_Node_Str",1,"String_Node_Str",2)).set("String_Node_Str",null).build();
  ByteArrayOutputStream out=new ByteArrayOutputStream();
  BinaryEncoder encoder=EncoderFactory.get().binaryEncoder(out,null);
  DatumWriter<GenericRecord> writer=new GenericDatumWriter<GenericRecord>(avroSchema);
  writer.write(record,encoder);
  encoder.flush();
  out.close();
  byte[] serializedRecord=out.toByteArray();
  AvroRecordFormat format=new AvroRecordFormat();
  format.initialize(formatSpecification);
  GenericRecord actual=format.read(ByteBuffer.wrap(serializedRecord));
  Assert.assertEquals(Integer.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertEquals(Long.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertFalse((Boolean)actual.get("String_Node_Str"));
  Assert.assertArrayEquals(Bytes.toBytes("String_Node_Str"),Bytes.toBytes((ByteBuffer)actual.get("String_Node_Str")));
  Assert.assertEquals(Double.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertEquals(Float.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertEquals("String_Node_Str",actual.get("String_Node_Str").toString());
  Assert.assertEquals(Lists.newArrayList(1,2,3),actual.get("String_Node_Str"));
  assertMapEquals(ImmutableMap.<String,Object>of("String_Node_Str",1,"String_Node_Str",2),(Map<Object,Object>)actual.get("String_Node_Str"));
  Assert.assertNull(actual.get("String_Node_Str"));
}

Fixed version (ground truth):
@Test public void testFlatRecord() throws Exception {
  Schema schema=Schema.recordOf("String_Node_Str",Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.INT)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.LONG)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.BOOLEAN)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.BYTES)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.DOUBLE)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.FLOAT)),Schema.Field.of("String_Node_Str",Schema.of(Schema.Type.STRING)),Schema.Field.of("String_Node_Str",Schema.arrayOf(Schema.of(Schema.Type.INT))),Schema.Field.of("String_Node_Str",Schema.mapOf(Schema.of(Schema.Type.STRING),Schema.of(Schema.Type.INT))),Schema.Field.of("String_Node_Str",Schema.unionOf(Schema.of(Schema.Type.STRING),Schema.of(Schema.Type.NULL))));
  FormatSpecification formatSpecification=new FormatSpecification(Formats.AVRO,schema,Collections.<String,String>emptyMap());
  org.apache.avro.Schema avroSchema=convertSchema(schema);
  GenericRecord record=new GenericRecordBuilder(avroSchema).set("String_Node_Str",Integer.MAX_VALUE).set("String_Node_Str",Long.MAX_VALUE).set("String_Node_Str",false).set("String_Node_Str",ByteBuffer.wrap(Bytes.toBytes("String_Node_Str"))).set("String_Node_Str",Double.MAX_VALUE).set("String_Node_Str",Float.MAX_VALUE).set("String_Node_Str","String_Node_Str").set("String_Node_Str",Lists.newArrayList(1,2,3)).set("String_Node_Str",ImmutableMap.of("String_Node_Str",1,"String_Node_Str",2)).set("String_Node_Str",null).build();
  ByteArrayOutputStream out=new ByteArrayOutputStream();
  BinaryEncoder encoder=EncoderFactory.get().binaryEncoder(out,null);
  DatumWriter<GenericRecord> writer=new GenericDatumWriter<GenericRecord>(avroSchema);
  writer.write(record,encoder);
  encoder.flush();
  out.close();
  byte[] serializedRecord=out.toByteArray();
  RecordFormat<ByteBuffer,GenericRecord> format=RecordFormats.createInitializedFormat(formatSpecification);
  GenericRecord actual=format.read(ByteBuffer.wrap(serializedRecord));
  Assert.assertEquals(Integer.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertEquals(Long.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertFalse((Boolean)actual.get("String_Node_Str"));
  Assert.assertArrayEquals(Bytes.toBytes("String_Node_Str"),Bytes.toBytes((ByteBuffer)actual.get("String_Node_Str")));
  Assert.assertEquals(Double.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertEquals(Float.MAX_VALUE,actual.get("String_Node_Str"));
  Assert.assertEquals("String_Node_Str",actual.get("String_Node_Str").toString());
  Assert.assertEquals(Lists.newArrayList(1,2,3),actual.get("String_Node_Str"));
  assertMapEquals(ImmutableMap.<String,Object>of("String_Node_Str",1,"String_Node_Str",2),(Map<Object,Object>)actual.get("String_Node_Str"));
  Assert.assertNull(actual.get("String_Node_Str"));
}