code: @Override
      public void run() {
          Date actualExecutionTime = new Date();
          super.run();
          Date completionTime = new Date();
          synchronized (this.triggerContextMonitor) {
              this.triggerContext.update(this.scheduledExecutionTime, actualExecutionTime, completionTime);
              if (!this.currentFuture.isCancelled()) {
                  schedule();
              }
          }
      }
docs: {@inheritDoc}
  
  @see org.audit4j.core.schedule.DelegatingErrorHandlingRunnable#run()