private void schedule() {
    LOG.debug("schedule");
    if (disposed.get() || scheduled.getAndSet(true)) return;
    synchronized (files) {
      if (session != null || files.isEmpty()) return;
    }
    LOG.debug("scheduled for ", delay, " seconds");
    executor.schedule(this::launch, delay, SECONDS);
  }
private void schedule()