code: public CompletableFuture<NewFile> run() {
          LOG.log(Level.FINE, "starting optimized file creation for {0} files", files.size());
          CompletableFuture<NewFile> fileCreation = new CompletableFuture<>();
          final List<TSData> fjpFiles = this.files;  // We clear out files below, which makes createTmpFile see an empty map if we don't use a separate variable.
          TASK_POOL.execute(() -> createTmpFile(fileCreation, destDir, fjpFiles, getCompression()));
          synchronized (OUTSTANDING) {
              OUTSTANDING.add(fileCreation);
          }
          this.files = new LinkedList<>();  // Do not use clear! This instance is now shared with the createTmpFile task.
          return fileCreation;
      }
docs: Start creating the optimized file. This operation resets the state of the
  optimizer task, so it can be re-used for subsequent invocations.
  
  @return A completeable future that yields the newly created file.