private void mergeUpdates() {
      List<DocumentUpdate> result = new ArrayList<>(updates.size());
      result.add(updates.get(0));
      for (int i = 1; i < updates.size(); i++) {
        DocumentUpdate b = updates.get(i);
        if (!mergeUpdate(result, b.offset, b.oldLength, b.newLength)) {
          result.add(b);
        }
      }
      updates = result;
    }
private void mergeUpdates()