From bfa363a3d2903bb9bf68c7721740e95b2f1a4925 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Fri, 11 Dec 2020 11:26:48 +0100 Subject: [PATCH] RED-871: Fixed endless processing on document with corrupted contentStream --- .../v1/server/redaction/model/Section.java | 13 ++++++++++++- .../redaction/service/EntityRedactionService.java | 6 ++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java index aa94bda4..17bbdbe1 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/Section.java @@ -188,7 +188,13 @@ public class Section { for (String value : values) { if (StringUtils.isNotBlank(value)) { String[] lines = value.split("\n"); + for (String line : lines) { + + if (line.trim().length() <= 2) { + return; + } + Set found = findEntities(line.trim(), asType, false); // HashSet keeps the older value, but we want the new only. @@ -216,6 +222,10 @@ public class Section { private Set findEntities(String value, String asType, boolean caseinsensitive) { + if (value.trim().length() <= 2) { + return new HashSet<>(); + } + Set found = new HashSet<>(); String text = caseinsensitive ? searchText.toLowerCase() : searchText; @@ -294,7 +304,8 @@ public class Section { entity.setRedaction(redact); entity.setMatchedRule(ruleNumber); entity.setRedactionReason(reason); - entity.setTargetSequences(value.getTextBlocks().get(0) + entity.setTargetSequences(value.getTextBlocks() + .get(0) .getSequences()); // Make sure no other cells with same content are highlighted entity.setLegalBasis(legalBasis); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java index b9bc4e8e..346e3569 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java @@ -246,7 +246,13 @@ public class EntityRedactionService { private Set find(String inputString, Set values, String type, String headline, int sectionNumber, boolean local) { Set found = new HashSet<>(); + for (String value : values) { + + if(value.trim().length() <= 2) { + continue; + } + int startIndex; int stopIndex = 0; do {