From c18f43318614ccfb4d460d229e20b0f81767b48d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominique=20Eifl=C3=A4nder?= Date: Tue, 26 Mar 2024 16:00:34 +0100 Subject: [PATCH] RED-8834: Fixed text entities with empty text range --- .gitlab-ci.yml | 2 ++ .../v1/server/service/document/EntityCreationService.java | 3 +++ .../redaction/v1/server/utils/RedactionSearchUtility.java | 8 ++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4f7f7901..a610c9f1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,3 +21,5 @@ deploy: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH =~ /^release/ - if: $CI_COMMIT_TAG +pmd: + allow_failure: true diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java index bdfa11d5..dd799eee 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java @@ -599,6 +599,9 @@ public class EntityCreationService { throw new IllegalArgumentException(String.format("%s is not in the %s of the provided semantic node %s", textRange, node.getTextRange(), node)); } TextRange trimmedTextRange = textRange.trim(node.getTextBlock()); + if (trimmedTextRange.length() == 0){ + return Optional.empty(); + } TextEntity entity = TextEntity.initialEntityNode(trimmedTextRange, type, entityType); if (node.getEntities().contains(entity)) { return node.getEntities().stream().filter(entity::equals).peek(e -> e.addEngines(engines)).findAny(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/utils/RedactionSearchUtility.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/utils/RedactionSearchUtility.java index e5bcba11..47b93c63 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/utils/RedactionSearchUtility.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/utils/RedactionSearchUtility.java @@ -151,7 +151,9 @@ public class RedactionSearchUtility { Matcher matcher = pattern.matcher(textBlock.subSequence(textBlock.getTextRange())); List boundaries = new LinkedList<>(); while (matcher.find()) { - boundaries.add(new TextRange(matcher.start(group) + textBlock.getTextRange().start(), matcher.end(group) + textBlock.getTextRange().start())); + if (!matcher.group(group).isBlank()) { + boundaries.add(new TextRange(matcher.start(group) + textBlock.getTextRange().start(), matcher.end(group) + textBlock.getTextRange().start())); + } } return boundaries; } @@ -163,7 +165,9 @@ public class RedactionSearchUtility { Matcher matcher = pattern.matcher(searchTextWithLineBreaks); List boundaries = new LinkedList<>(); while (matcher.find()) { - boundaries.add(new TextRange(matcher.start(group) + textBlock.getTextRange().start(), matcher.end(group) + textBlock.getTextRange().start())); + if (!matcher.group(group).isBlank()) { + boundaries.add(new TextRange(matcher.start(group) + textBlock.getTextRange().start(), matcher.end(group) + textBlock.getTextRange().start())); + } } return boundaries; }