@Transactional(readOnly = false)
 @Override
 public ScheduleResult reScheduleUpdateTask(
     UpdateWorkerTask updt,
     long time,
     boolean incrementRetries,
     UpdateWorkerTask.AuditTrailEntry auditTrailEntry) {
   if (isShuttingDown) {
     StringBuilder sb =
         new StringBuilder(
                 "module=updateQueue component=updateAllConnectors" + " action=updateConnector")
             .append(" message=\"Service is shutting down... Refusing updates\"");
     logger.warn(sb.toString());
     return new ScheduleResult(
         updt.connectorName,
         updt.getObjectTypes(),
         ScheduleResult.ResultType.SYSTEM_IS_SHUTTING_DOWN,
         time);
   }
   if (!incrementRetries) {
     UpdateWorkerTask failed = new UpdateWorkerTask(updt);
     failed.retries = updt.retries;
     failed.connectorName = updt.connectorName;
     failed.status = Status.FAILED;
     failed.guestId = updt.guestId;
     failed.timeScheduled = updt.timeScheduled;
     em.persist(failed);
     updt.retries = 0;
   } else updt.retries += 1;
   updt.addAuditTrailEntry(auditTrailEntry);
   updt.status = Status.SCHEDULED;
   updt.timeScheduled = time;
   em.merge(updt);
   return new ScheduleResult(
       updt.connectorName,
       updt.getObjectTypes(),
       ScheduleResult.ResultType.SCHEDULED_UPDATE_DEFERRED,
       time);
 }