// first it sets the transient key fields from the stored key.
MarshalledTupleData obj;
try {
obj = (MarshalledTupleData) cls.newInstance();
} catch (IllegalAccessException e) {
throw new IOExceptionWrapper(e);
} catch (InstantiationException e) {
throw new IOExceptionWrapper(e);
}
if (valueInput != null) { // may be null if used by key extractor
obj.unmarshalData(valueInput);
}
MarshalledTupleKeyEntity entity = (MarshalledTupleKeyEntity) obj;