From 36755e59589492ea6dc6b03c30da9d01f9d9567e Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Fri, 15 Dec 2023 11:17:29 +0200 Subject: [PATCH 1/5] RED-7256 - Overlapping annotation color from imported redaction and resized redaction - fix NPE which is caused by the null value in case of resize imported redaction --- .../v1/processor/service/EntityLogMergeService.java | 10 +++++++--- .../manualredactions/ManualRedactionMapper.java | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index 09752425e..d64a9554a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -12,6 +12,7 @@ import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; @@ -204,12 +205,15 @@ public class EntityLogMergeService { entityLogEntry.setTextBefore(manualResizeRedaction.getTextBefore()); entityLogEntry.setPositions(convertPositions(manualResizeRedaction.getPositions())); addChanges(entityLogEntry.getChanges(), ChangeType.CHANGED, entityLog.getAnalysisNumber()); - entityLogEntry.getManualChanges().add(ManualChange.builder() + ManualChange.ManualChangeBuilder manualChange = ManualChange.builder() .manualRedactionType(ManualRedactionType.RESIZE) .requestedDate(manualResizeRedaction.getRequestDate()) .processedDate(null) - .propertyChanges(Map.of("value", manualResizeRedaction.getValue())) - .userId(manualResizeRedaction.getUser()).build()); + .userId(manualResizeRedaction.getUser()); + if (!StringUtils.isEmpty(manualResizeRedaction.getValue())) { + manualChange.propertyChanges(Map.of("value", manualResizeRedaction.getValue())); + } + entityLogEntry.getManualChanges().add(manualChange.build()); manualRedactions.getResizeRedactions().add(manualResizeRedaction); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java index b8abca399..9c28a7526 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException; @@ -173,7 +174,7 @@ public class ManualRedactionMapper { .user(KeycloakSecurity.getUserId()) .status(AnnotationStatus.APPROVED) .positions(resizeRedactionRequest.getPositions()) - .value(StringCleaningUtility.cleanString(resizeRedactionRequest.getValue())) + .value(StringUtils.isEmpty(resizeRedactionRequest.getValue()) ? resizeRedactionRequest.getValue() : StringCleaningUtility.cleanString(resizeRedactionRequest.getValue())) .comment(resizeRedactionRequest.getComment()) .updateDictionary(resizeRedactionRequest.getUpdateDictionary()) .addToAllDossiers(resizeRedactionRequest.isAddToAllDossiers()) -- 2.47.2 From 85737653f7b99ae8c245c52c7684d4de2197321f Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Tue, 19 Dec 2023 12:50:21 +0200 Subject: [PATCH 2/5] RED-7256 - Overlapping annotation color from imported redaction and resized redaction - use Strings from guave for empty or null and set empty value in case of null value --- .../management/v1/processor/service/EntityLogMergeService.java | 3 ++- .../service/manualredactions/ManualRedactionMapper.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index d64a9554a..4205d2c22 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -16,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; +import com.google.common.base.Strings; import com.google.common.collect.Sets; import com.iqser.red.service.persistence.management.v1.processor.configuration.MessagingConfiguration; import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.TypeEntity; @@ -210,7 +211,7 @@ public class EntityLogMergeService { .requestedDate(manualResizeRedaction.getRequestDate()) .processedDate(null) .userId(manualResizeRedaction.getUser()); - if (!StringUtils.isEmpty(manualResizeRedaction.getValue())) { + if (Strings.isNullOrEmpty(manualResizeRedaction.getValue())) { manualChange.propertyChanges(Map.of("value", manualResizeRedaction.getValue())); } entityLogEntry.getManualChanges().add(manualChange.build()); diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java index 9c28a7526..b8d2a9728 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/manualredactions/ManualRedactionMapper.java @@ -174,7 +174,7 @@ public class ManualRedactionMapper { .user(KeycloakSecurity.getUserId()) .status(AnnotationStatus.APPROVED) .positions(resizeRedactionRequest.getPositions()) - .value(StringUtils.isEmpty(resizeRedactionRequest.getValue()) ? resizeRedactionRequest.getValue() : StringCleaningUtility.cleanString(resizeRedactionRequest.getValue())) + .value(resizeRedactionRequest.getValue() == null ? "" : StringCleaningUtility.cleanString(resizeRedactionRequest.getValue())) .comment(resizeRedactionRequest.getComment()) .updateDictionary(resizeRedactionRequest.getUpdateDictionary()) .addToAllDossiers(resizeRedactionRequest.isAddToAllDossiers()) -- 2.47.2 From 705dd423336f716b6047fad79602782792c507f6 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Tue, 19 Dec 2023 13:50:38 +0200 Subject: [PATCH 3/5] RED-7256 - Overlapping annotation color from imported redaction and resized redaction - fix the NPE aldo for legalBasis changes --- .../processor/service/EntityLogMergeService.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index 4205d2c22..d591b5718 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -12,7 +12,6 @@ import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; @@ -211,7 +210,7 @@ public class EntityLogMergeService { .requestedDate(manualResizeRedaction.getRequestDate()) .processedDate(null) .userId(manualResizeRedaction.getUser()); - if (Strings.isNullOrEmpty(manualResizeRedaction.getValue())) { + if (!Strings.isNullOrEmpty(manualResizeRedaction.getValue())) { manualChange.propertyChanges(Map.of("value", manualResizeRedaction.getValue())); } entityLogEntry.getManualChanges().add(manualChange.build()); @@ -228,13 +227,18 @@ public class EntityLogMergeService { entity.get().setSection(manualLegalBasisChange.getSection()); entity.get().setValue(manualLegalBasisChange.getValue()); addChanges(entity.get().getChanges(), ChangeType.CHANGED, entityLog.getAnalysisNumber()); + Map propertyChanges = Map.of("legalBasis", manualLegalBasisChange.getLegalBasis()); + if (!Strings.isNullOrEmpty(manualLegalBasisChange.getValue())) { + propertyChanges.put("value", manualLegalBasisChange.getValue()); + } + if(!Strings.isNullOrEmpty(manualLegalBasisChange.getSection())) { + propertyChanges.put("section", manualLegalBasisChange.getSection()); + } entity.get().getManualChanges().add(ManualChange.builder() .manualRedactionType(ManualRedactionType.LEGAL_BASIS_CHANGE) .requestedDate(manualLegalBasisChange.getRequestDate()) .processedDate(null) - .propertyChanges(Map.of("value", manualLegalBasisChange.getValue(), - "section", manualLegalBasisChange.getSection(), - "legalBasis", manualLegalBasisChange.getLegalBasis())) + .propertyChanges(propertyChanges) .userId(manualLegalBasisChange.getUser()) .build()); } -- 2.47.2 From 6e7dadd0cf4f6f8a3d3f444338bb95b4eb72a493 Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Tue, 19 Dec 2023 14:17:15 +0200 Subject: [PATCH 4/5] RED-7256 - Overlapping annotation color from imported redaction and resized redaction - fix immutable map --- .../v1/processor/service/EntityLogMergeService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index d591b5718..3ce4e8644 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -6,6 +6,7 @@ import java.time.OffsetDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -227,7 +228,10 @@ public class EntityLogMergeService { entity.get().setSection(manualLegalBasisChange.getSection()); entity.get().setValue(manualLegalBasisChange.getValue()); addChanges(entity.get().getChanges(), ChangeType.CHANGED, entityLog.getAnalysisNumber()); - Map propertyChanges = Map.of("legalBasis", manualLegalBasisChange.getLegalBasis()); + Map propertyChanges = new HashMap<>(); + if (!Strings.isNullOrEmpty(manualLegalBasisChange.getLegalBasis())) { + propertyChanges.put("legalBasis", manualLegalBasisChange.getLegalBasis()); + } if (!Strings.isNullOrEmpty(manualLegalBasisChange.getValue())) { propertyChanges.put("value", manualLegalBasisChange.getValue()); } -- 2.47.2 From 85d12f93551c3cb5f706e0d07a5081ebfd4ae34d Mon Sep 17 00:00:00 2001 From: Corina Olariu Date: Wed, 20 Dec 2023 11:14:30 +0200 Subject: [PATCH 5/5] RED-7256 - Overlapping annotation color from imported redaction and resized redaction - fix merge from master --- .../v1/processor/service/EntityLogMergeService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java index 976bb089d..26ae4580b 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/EntityLogMergeService.java @@ -47,6 +47,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileModel; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType; +import io.micrometer.observation.annotation.Observed; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -195,7 +196,7 @@ public class EntityLogMergeService { entityLogEntry.setTextAfter(manualResizeRedaction.getTextAfter()); entityLogEntry.setTextBefore(manualResizeRedaction.getTextBefore()); entityLogEntry.setPositions(convertPositions(manualResizeRedaction.getPositions())); - addChanges(entityLogEntry.getChanges(), ChangeType.CHANGED, entityLog.getAnalysisNumber()); + addChanges(entityLogEntry.getChanges(), ChangeType.CHANGED, analysisNumber, manualResizeRedaction.getRequestDate()); ManualChange.ManualChangeBuilder manualChange = ManualChange.builder() .manualRedactionType(ManualRedactionType.RESIZE) .requestedDate(manualResizeRedaction.getRequestDate()) @@ -205,7 +206,6 @@ public class EntityLogMergeService { manualChange.propertyChanges(Map.of("value", manualResizeRedaction.getValue())); } entityLogEntry.getManualChanges().add(manualChange.build()); - } } private void mergeLegalBasisChanges(ManualLegalBasisChange manualLegalBasisChange, EntityLogEntry entityLogEntry, int analysisNumber) { -- 2.47.2