@Override protected Object getField(Object record, String name, int position) { if (record instanceof IndexedRecord) return super.getField(record, name, position); try { return ReflectData.getField(record.getClass(), name).get(record); } catch (IllegalAccessException e) { throw new AvroRuntimeException(e); } }