From ed23483d7dfcf59b3f262acc6356938d92e4c471 Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Tue, 10 Oct 2023 14:37:27 +0300 Subject: [PATCH 1/2] RED-7708 - Remove duplicate entries in redaction log entry list --- .../redaction/v1/server/service/AnalyzeService.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java index 6abf510e..c7c8a936 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java @@ -5,6 +5,9 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; import org.springframework.stereotype.Service; @@ -229,6 +232,8 @@ public class AnalyzeService { notFoundManualRedactionEntries, getComments(analyzeRequest)); + newRedactionLogEntries = newRedactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).toList(); + var importedRedactionFilteredEntries = importedRedactionService.processImportedRedactions(analyzeRequest.getDossierTemplateId(), analyzeRequest.getDossierId(), analyzeRequest.getFileId(), @@ -382,6 +387,8 @@ public class AnalyzeService { notFoundManualRedactionEntries, getComments(analyzeRequest)); + redactionLogEntries = redactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).toList(); + List legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getDossierTemplateId()); RedactionLog redactionLog = new RedactionLog(redactionServiceSettings.getAnalysisVersion(), analyzeRequest.getAnalysisNumber(), @@ -401,6 +408,12 @@ public class AnalyzeService { return redactionLog; } + private Predicate distinctByKey(Function keyExtractor) { + + Set seen = ConcurrentHashMap.newKeySet(); + return t -> seen.add(keyExtractor.apply(t)); + } + private static Map> getComments(AnalyzeRequest analyzeRequest) { -- 2.47.2 From 2d10f353bd9c5ca1383e5a3efe4ab497cfab4f9f Mon Sep 17 00:00:00 2001 From: Andrei Isvoran Date: Tue, 10 Oct 2023 14:50:22 +0300 Subject: [PATCH 2/2] RED-7708 - Change to Collectors.toList() so it doesn't return an immutable list --- .../service/redaction/v1/server/service/AnalyzeService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java index c7c8a936..7d88cfa5 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/AnalyzeService.java @@ -232,7 +232,7 @@ public class AnalyzeService { notFoundManualRedactionEntries, getComments(analyzeRequest)); - newRedactionLogEntries = newRedactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).toList(); + newRedactionLogEntries = newRedactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).collect(Collectors.toList()); var importedRedactionFilteredEntries = importedRedactionService.processImportedRedactions(analyzeRequest.getDossierTemplateId(), analyzeRequest.getDossierId(), @@ -387,7 +387,7 @@ public class AnalyzeService { notFoundManualRedactionEntries, getComments(analyzeRequest)); - redactionLogEntries = redactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).toList(); + redactionLogEntries = redactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).collect(Collectors.toList()); List legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getDossierTemplateId()); RedactionLog redactionLog = new RedactionLog(redactionServiceSettings.getAnalysisVersion(), -- 2.47.2