@Override
    protected Object attemptReadResponse(@NotNull Connection cnx) throws Exception {
      final Message msg = createResponseMessage();
      msg.setComms(cnx.getSocket(), cnx.getInputStream(), cnx.getOutputStream(),
          ((ConnectionImpl) cnx).getCommBufferForAsyncRead(), cnx.getStats());
      if (msg instanceof ChunkedMessage) {
        try {
          return processResponse(msg, cnx);
        } finally {
          msg.unsetComms();
          // TODO (ashetkar) Handle the case when we fail to read the
          // connection id.
          processSecureBytes(cnx, msg);
        }
      }

      try {
        msg.receive();
      } finally {
        msg.unsetComms();
        processSecureBytes(cnx, msg);
      }
      return processResponse(msg, cnx);

    }
Attempts to read a response to this operation by reading it from the given connection, and
returning it.

@param cnx the connection to read the response from
@return the result of the operation or <code>null</code> if the operation has no result.
@throws Exception if the execute failed
geode-wan/src/main/java/org/apache/geode/cache/wan/internal/client/locator/GatewaySenderBatchOp.java