code: @Override
      public <T> Future<T> submit(Callable<T> task) {
          ExecutorService executor = getScheduledExecutor();
          try {
              Callable<T> taskToUse = task;
              if (this.errorHandler != null) {
                  taskToUse = new DelegatingErrorHandlingCallable<T>(task, this.errorHandler);
              }
              return executor.submit(taskToUse);
          } catch (RejectedExecutionException ex) {
              throw new TaskRejectedException("Executor [" + executor + "] did not accept task: " + task, ex);
          }
      }
docs: {@inheritDoc}
  
  @see org.audit4j.core.schedule.AsyncTaskExecutor#submit(java.util.concurrent.Callable)