diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ManualRedactionService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ManualRedactionService.java index 8679199b7..6b5d74c49 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ManualRedactionService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/ManualRedactionService.java @@ -284,18 +284,16 @@ public class ManualRedactionService { if (removeRedactionRequest.getComment() != null) { commentId = addComment(fileId, removeRedactionRequest.getAnnotationId(), removeRedactionRequest.getComment(), removeRedactionRequest.getUser()).getId(); } + boolean matchingEntryFound = false; if (!removeRedactionRequest.isRemoveFromDictionary() && AnnotationStatus.APPROVED.equals(removeRedactionRequest.getStatus())) { - boolean matchingEntryFound; try { getRedactionLogEntry(redactionLog, removeRedactionRequest.getAnnotationId()); matchingEntryFound = true; } catch (NotFoundException e) { - matchingEntryFound = false; + log.warn("No matching entry found in redaction log for annotation id {}", removeRedactionRequest.getAnnotationId()); } + requiresReAnalysis = requiresReAnalysis || matchingEntryFound; - if (!matchingEntryFound && idRemoval.isApproved()) { - removeRedactionPersistenceService.markAsProcessed(idRemoval); - } } var removedFromDictionary = handleRemoveFromDictionary(redactionLog, @@ -307,7 +305,7 @@ public class ManualRedactionService { removeRedactionRequest.isRemoveFromAllDossiers(), false); - if (!removedFromDictionary && idRemoval.isApproved()) { + if (!matchingEntryFound && !removedFromDictionary && idRemoval.isApproved()) { removeRedactionPersistenceService.markAsProcessed(idRemoval); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/redactionlog/RedactionLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/redactionlog/RedactionLogMergeService.java index 327673023..38dc7672a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/redactionlog/RedactionLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/redactionlog/RedactionLogMergeService.java @@ -87,8 +87,10 @@ public class RedactionLogMergeService { var manualRedactionWrappers = createManualRedactionWrappers(manualRedactions); for (RedactionLogEntry entry : redactionLog.getRedactionLogEntry()) { - - processRedactionLogEntry(manualRedactionWrappers.stream().filter(mr -> entry.getId().equals(mr.getId())).collect(Collectors.toList()), entry, types, colors); + var applicableManualRedactions = manualRedactionWrappers.stream().filter(mr -> entry.getId().equals(mr.getId())).collect(Collectors.toList()); + if (!applicableManualRedactions.isEmpty()) { + processRedactionLogEntry(applicableManualRedactions, entry, types, colors); + } if (entry.isImported() && !entry.isRedacted()) { skippedImportedRedactions.add(entry.getId());