private void scheduleTimeoutFlush() {
    if (timeoutFlushFuture != null && !timeoutFlushFuture.isDone()) return;
    Runnable command = () -> {
      cancelFlushTask(throttlingFlushFuture);
      flushBuffer(true);
      contributorsMap.keySet().forEach(c -> contributorsMap.put(c, true));
    };
    timeoutFlushFuture = executorService.schedule(command, waitTimeoutMs, TimeUnit.MILLISECONDS);
  }
private void scheduleTimeoutFlush()