From 274512a58e52df2852adc314e3eb286409659264 Mon Sep 17 00:00:00 2001 From: jendib Date: Thu, 24 Mar 2016 00:41:31 +0100 Subject: [PATCH] Fix if a file is deleted before text extraction is finished --- .../main/java/com/sismics/docs/core/dao/jpa/FileDao.java | 6 ++++-- .../docs/core/listener/async/FileCreatedAsyncListener.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java index 96fe6eab..ed2036f8 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java @@ -155,10 +155,12 @@ public class FileDao { * @param id File ID * @return File */ - public File getById(String id) { + public File getActiveById(String id) { EntityManager em = ThreadLocalContext.get().getEntityManager(); + Query q = em.createQuery("select f from File f where f.id = :id and f.deleteDate is null"); + q.setParameter("id", id); try { - return em.find(File.class, id); + return (File) q.getSingleResult(); } catch (NoResultException e) { return null; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/listener/async/FileCreatedAsyncListener.java b/docs-core/src/main/java/com/sismics/docs/core/listener/async/FileCreatedAsyncListener.java index a5301769..e2244ad5 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/listener/async/FileCreatedAsyncListener.java +++ b/docs-core/src/main/java/com/sismics/docs/core/listener/async/FileCreatedAsyncListener.java @@ -54,7 +54,7 @@ public class FileCreatedAsyncListener { @Override public void run() { FileDao fileDao = new FileDao(); - if (fileDao.getById(file.getId()) == null) { + if (fileDao.getActiveById(file.getId()) == null) { // The file has been deleted since the text extraction started, ignore the result return; }