code: @Override
      public ScheduledFuture<?> schedule(Runnable task, Trigger trigger) {
          ScheduledExecutorService executor = getScheduledExecutor();
          try {
              ErrorHandler errorHandlerLocal = this.errorHandler != null ? this.errorHandler : TaskUtils
                      .getDefaultErrorHandler(true);
              return new ReschedulingRunnable(task, trigger, executor, errorHandlerLocal).schedule();
          } catch (RejectedExecutionException ex) {
              throw new TaskRejectedException("Executor [" + executor + "] did not accept task: " + task, ex);
          }
      }
docs: {@inheritDoc}
  
  @see org.audit4j.core.schedule.TaskScheduler#schedule(java.lang.Runnable, org.audit4j.core.schedule.Trigger)