@Override
    protected void process(ClusterDistributionManager dm) {
      // NOTE: keep this method efficient since it is optimized
      // by executing it in the p2p reader.
      // This is done with this line in DistributionMessage.java:
      // || c.equals(SearchLoadAndWriteProcessor.ResponseMessage.class)
      SearchLoadAndWriteProcessor processor = null;
      processor = (SearchLoadAndWriteProcessor) getProcessorKeeper().retrieve(processorId);
      if (processor == null) {
        if (logger.isDebugEnabled()) {
          logger.debug("Response() SearchLoadAndWriteProcessor no longer exists");
        }
        return;
      }
      long lastModifiedSystemTime = 0;
      if (lastModified != 0) {
        lastModifiedSystemTime = lastModified;
      }
      if (versionTag != null) {
        versionTag.replaceNullIDs(getSender());
      }

      processor.incomingResponse(result, lastModifiedSystemTime, isPresent,
          isSerialized, requestorTimedOut, getSender(), dm, versionTag);
    }
Invoked on the receiver - which, in this case, was the initiator of the QueryMessage .
geode-core/src/main/java/org/apache/geode/internal/cache/SearchLoadAndWriteProcessor.java