@Override
  public void fromData(DataInput in,
      DeserializationContext context) throws IOException, ClassNotFoundException {
    super.fromData(in, context);
    byte status = in.readByte();
    ignored = testFlag(status, IGNORED_FLAG);
    closed = testFlag(status, CLOSED_FLAG);
    if (testFlag(status, PROCESSOR_ID_FLAG)) {
      processorId = in.readInt();
    }
    if (testFlag(status, EXCEPTION_FLAG)) {
      returnValue = context.getDeserializer().readObject(in);
      returnValueIsException = true;
    } else if (testFlag(status, OBJECT_FLAG)) {
      returnValue = context.getDeserializer().readObject(in);
      returnValueIsException = (returnValue instanceof ReplyException);
    }
    internal = testFlag(status, INTERNAL_FLAG);
  }
Processes this message. This method is invoked by the receiver of the message if the message is
not direct ack. If the message is a direct ack, the process(dm, ReplyProcessor) method is
invoked instead.

@param dm the distribution manager that is processing the message.
geode-core/src/main/java/org/apache/geode/distributed/internal/ReplyMessage.java