public void dmProcess(final DistributionManager dm) {
    final long startTime = getTimestamp();
    ReplyProcessor21 processor = ReplyProcessor21.getProcessor(processorId);
    try {
      process(dm, processor);

      if (DistributionStats.enableClockStats) {
        dm.getStats().incReplyMessageTime(DistributionStats.getStatTime() - startTime);
      }
    } catch (RuntimeException ex) {
      if (processor != null) {
        processor.cancel(getSender(), ex);
      }
      throw ex;
    }
  }
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