docs: def notify_exception(self, exception, run_done_callbacks=True):
          ''' set the exception message, stop transfer if running and set the done event '''
          logger.error("%s : %s" % (exception.__class__.__name__, str(exception)))
          self._exception = exception
          if self.is_running(True):
              # wait for a short 5 seconds for it to finish
              for _cnt in range(0, 5):
                  if not self._cancel():
                      time.sleep(1)
                  else:
                      break
  
          self.notify_done(error=True, run_done_callbacks=run_done_callbacks)