@Override
  public void fromData(DataInput in,
      DeserializationContext context) throws IOException, ClassNotFoundException {
    /*
     * read the total list size, reconstruct the message list in a loop by reading the region name,
     * number of eventIds and the event ids
     */
    super.fromData(in, context);
    // read the size of the message
    int size = DataSerializer.readInteger(in);
    messagesList = new LinkedList<>();
    int eventIdSizeInt;
    for (int i = 0; i < size; i++) {
      // read the region name
      messagesList.add(DataSerializer.readString(in));
      // read the data size
      Integer eventIdSize = DataSerializer.readInteger(in);
      messagesList.add(eventIdSize);
      eventIdSizeInt = eventIdSize;
      // read the total number of events
      for (int j = 0; j < eventIdSizeInt; j++) {
        messagesList.add(DataSerializer.readObject(in));
      }
      // increment i by adding the total number of ids read and 1 for
      // the length of the message
      //
      i = i + eventIdSizeInt + 1;
    }
  }
Extracts the region from the message list and hands over the message removal task to the
executor
geode-core/src/main/java/org/apache/geode/internal/cache/ha/QueueRemovalMessage.java