@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); }