code: @Override
    public void run() {
      try {
        // Change state and inform the Driver
        this.taskLifeCycleHandlers.beforeTaskStart();
  
        LOG.log(Level.FINEST, "Informing registered EventHandler<TaskStart>.");
        this.currentStatus.setRunning();
  
        // Call Task.call()
        final byte[] result = this.runTask();
  
        // Inform the Driver about it
        this.currentStatus.setResult(result);
  
        LOG.log(Level.FINEST, "Informing registered EventHandler<TaskStop>.");
        this.taskLifeCycleHandlers.afterTaskExit();
  
      } catch (final TaskStartHandlerFailure taskStartHandlerFailure) {
        LOG.log(Level.WARNING, "Caught an exception during TaskStart handler execution.", taskStartHandlerFailure);
        this.currentStatus.setException(taskStartHandlerFailure.getCause());
      } catch (final TaskStopHandlerFailure taskStopHandlerFailure) {
        LOG.log(Level.WARNING, "Caught an exception during TaskStop handler execution.", taskStopHandlerFailure);
        this.currentStatus.setException(taskStopHandlerFailure.getCause());
      } catch (final TaskCallFailure e) {
        LOG.log(Level.WARNING, "Caught an exception during Task.call().", e.getCause());
        this.currentStatus.setException(e);
      }
    }
docs: Run the task: Fire TaskStart, call Task.call(), fire TaskStop.