code: private void submitTask(@NotNull State<T, R> state, @NotNull BatchItem item, @NotNull Link auth) {
      // Submit task
      final StateHolder holder = new StateHolder(state);
      try {
        state.auth = auth;
        final Work<R> worker = objectTask(state, item);
        if (state.future.isDone()) {
          holder.close();
          return;
        }
        if (worker == null) {
          throw new IllegalStateException("Uncompleted task worker is null: " + item);
        }
        executeInPool(
            "task: " + state.getMeta().getOid(),
            () -> processObject(state, auth, worker),
            holder::close,
            true
        );
      } catch (Throwable e) {
        holder.close();
        throw e;
      }
    }
docs: Submit object processing task.
  
  @param state Current object state
  @param item  Metadata information with upload/download urls.
  @param auth  Urls authentication state.