From af9f68d498a18f6a5069b9674016db347f2a6189 Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Tue, 10 Jan 2023 17:49:45 +0100 Subject: [PATCH] RED-5892: Consolidated attribute changes and state changes. Moved the change to the full-reprocess-status after a exclusion or auto-analysis flag toggle into the FileStatusService, so that the changes can be run in a transaction, which will prevent other threads from seeing incomplete changes. --- .../service/ExcludeFromAnalysisService.java | 17 ++--------------- .../v1/server/service/FileStatusService.java | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java index 083b2351e..49b84317a 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/ExcludeFromAnalysisService.java @@ -23,26 +23,13 @@ public class ExcludeFromAnalysisService { } // toggle status - fileStatusService.toggleExclusion(fileId, excluded); - - if (!excluded) { - // if file has been re-enabled - process it - fileStatusService.setStatusFullReprocess(dossierId, fileId, false, true); - } - + fileStatusService.toggleExclusion(dossierId, fileId, excluded); } public void toggleAutomaticAnalysis(String dossierId, String fileId, boolean excludedFromAutomaticAnalysis) { - // toggle status - fileStatusService.toggleAutomaticAnalysis(fileId, excludedFromAutomaticAnalysis); - - if (!excludedFromAutomaticAnalysis) { - // if file has been re-enabled - process it - fileStatusService.setStatusFullReprocess(dossierId, fileId, false, true); - } - + fileStatusService.toggleAutomaticAnalysis(dossierId, fileId, excludedFromAutomaticAnalysis); } } diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java index 5f3c1ff2e..f6558fcf2 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/FileStatusService.java @@ -350,15 +350,25 @@ public class FileStatusService { } - public void toggleExclusion(String fileId, boolean excluded) { + @Transactional + public void toggleExclusion(String dossierId, String fileId, boolean excluded) { fileStatusPersistenceService.toggleExclusion(fileId, excluded); + + if (!excluded) { + setStatusFullReprocess(dossierId, fileId, false, true); + } } - public void toggleAutomaticAnalysis(String fileId, boolean excludedFromAutomaticAnalysis) { + @Transactional + public void toggleAutomaticAnalysis(String dossierId, String fileId, boolean excludedFromAutomaticAnalysis) { fileStatusPersistenceService.toggleAutomaticAnalysis(fileId, excludedFromAutomaticAnalysis); + + if (!excludedFromAutomaticAnalysis) { + setStatusFullReprocess(dossierId, fileId, false, true); + } }