@Override
  public void cmdExecute(final @NotNull Message clientMessage,
      final @NotNull ServerConnection serverConnection,
      final @NotNull SecurityService securityService, long start) throws IOException {
    Part eventIDPart = null, valuePart = null;
    EventID event = null;
    Object callbackArg = null;
    CachedRegionHelper crHelper = serverConnection.getCachedRegionHelper();
    StringBuilder errMessage = new StringBuilder();

    serverConnection.setAsTrue(REQUIRES_RESPONSE);

    // Retrieve the data from the message parts
    int parts = clientMessage.getNumberOfParts();
    eventIDPart = clientMessage.getPart(0);

    if (eventIDPart == null) {
      logger.warn("{}: The event id for the get event value request is null.",
          serverConnection.getName());
      errMessage.append(" The event id for the get event value request is null.");
      writeErrorResponse(clientMessage, MessageType.REQUESTDATAERROR, errMessage.toString(),
          serverConnection);
      serverConnection.setAsTrue(RESPONDED);
    } else {
      try {
        event = (EventID) eventIDPart.getObject();
      } catch (Exception e) {
        writeException(clientMessage, e, false, serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        return;
      }
      if (parts > 1) {
        valuePart = clientMessage.getPart(1);
        try {
          if (valuePart != null) {
            callbackArg = valuePart.getObject();
          }
        } catch (Exception e) {
          writeException(clientMessage, e, false, serverConnection);
          serverConnection.setAsTrue(RESPONDED);
          return;
        }
      }
      if (logger.isTraceEnabled()) {
        logger.trace("{}: Received get event value request ({} bytes) from {}",
            serverConnection.getName(), clientMessage.getPayloadLength(),
            serverConnection.getSocketString());
      }
      CacheClientNotifier ccn = serverConnection.getAcceptor().getCacheClientNotifier();
      // Get the ha container.
      HAContainerWrapper haContainer = (HAContainerWrapper) ccn.getHaContainer();
      if (haContainer == null) {
        String reason = " was not found during get event value request";
        writeRegionDestroyedEx(clientMessage, "ha container", reason, serverConnection);
        serverConnection.setAsTrue(RESPONDED);
      } else {
        Object[] valueAndIsObject = new Object[2];
        try {
          Object data = haContainer.get(new HAEventWrapper(event));

          if (data == null) {
            logger.warn("Unable to find a client update message for {}",
                event);
            String msgStr = "No value found for " + event + " in " + haContainer.getName();
            writeErrorResponse(clientMessage, MessageType.REQUEST_EVENT_VALUE_ERROR, msgStr,
                serverConnection);
            serverConnection.setAsTrue(RESPONDED);
            return;
          } else {
            if (logger.isDebugEnabled()) {
              logger.debug("Value retrieved for event {}", event);
            }
            Object val = ((ClientUpdateMessageImpl) data).getValueToConflate();
            if (!(val instanceof byte[])) {
              if (val instanceof CachedDeserializable) {
                val = ((CachedDeserializable) val).getSerializedValue();
              } else {
                val = CacheServerHelper.serialize(val);
              }
              ((ClientUpdateMessageImpl) data).setLatestValue(val);
            }
            valueAndIsObject[0] = val;
            valueAndIsObject[1] = ((ClientUpdateMessageImpl) data).valueIsObject();
          }
        } catch (Exception e) {
          writeException(clientMessage, e, false, serverConnection);
          serverConnection.setAsTrue(RESPONDED);
          return;
        }

        Object data = valueAndIsObject[0];
        boolean isObject = (Boolean) valueAndIsObject[1];

        writeResponse(data, callbackArg, clientMessage, isObject, serverConnection);
        serverConnection.setAsTrue(RESPONDED);
        ccn.getClientProxy(serverConnection.getProxyID()).getStatistics()
            .incDeltaFullMessagesSent();
        if (logger.isDebugEnabled()) {
          logger.debug("{}: Wrote get event value response back to {} for ha container {}",
              serverConnection.getName(), serverConnection.getSocketString(),
              haContainer.getName());
        }
      }
    }
  }
Represents a request for (full) value of a given event from ha container
(client-messages-region).

@since GemFire 6.1
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/command/RequestEventValue.java