@Atomic(mode = TxMode.WRITE)
protected void runJob(QueueJob job) throws Exception {
job.setJobStartTime(new DateTime());
QueueJobResult result = job.execute();
if (job instanceof QueueJobWithFile) {
final QueueJobWithFile queueJobWithFile = (QueueJobWithFile) job;
queueJobWithFile.setContentType(result.getContentType());
QueueJobResultFile.store(queueJobWithFile, queueJobWithFile.getPerson(), queueJobWithFile.getFilename(),
result.getContent());
}
job.setDone(true);
job.setRootDomainObjectQueueUndone(null);
job.setJobEndTime(new DateTime());