public void readFields(byte[] bytes, int offset, int length, Schema writerSchema, Schema readerSchema) throws IOException {
    fileSchema = writerSchema;
    record = new GenericData.Record(writerSchema);
    binaryDecoder =
        DecoderFactory.get().binaryDecoder(bytes, offset, length - offset,
	          binaryDecoder);
    GenericDatumReader<GenericRecord> gdr =
        new GenericDatumReader<GenericRecord>(writerSchema, readerSchema);
    record = gdr.read(null, binaryDecoder);
  }
Unique Id determine which record reader created this record
serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroGenericRecordWritable.java