From a35d77be2ee06ec3df223af3db1b7461a501c727 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 11 Mar 2024 16:14:48 +0200 Subject: [PATCH 1/2] ignore mc files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index ef2a133..1867f0b 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ gradlew.bat gradlew gradle.properties gradle/ +.DS_Store +.DS_Store/ From 5c1708f97feb03e931608f8155f6adfa25eafef5 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Fri, 22 Mar 2024 12:47:05 +0200 Subject: [PATCH 2/2] Issue with merging text blocks multiple times --- .../DocstrumBlockificationService.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/blockification/DocstrumBlockificationService.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/blockification/DocstrumBlockificationService.java index 92f3a73..c3666a6 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/blockification/DocstrumBlockificationService.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/blockification/DocstrumBlockificationService.java @@ -221,9 +221,11 @@ public class DocstrumBlockificationService { public void mergeIntersectingBlocks(List blocks, float xThreshold, float yThreshold) { ListIterator itty = blocks.listIterator(); - Set toRemove = new HashSet<>(); while (itty.hasNext()) { AbstractPageBlock block = itty.next(); + if(block == null){ + continue; + } if (block instanceof TablePageBlock) { continue; } @@ -232,7 +234,7 @@ public class DocstrumBlockificationService { for (int i = 0; i < blocks.size(); i++) { - if (toRemove.contains(blocks.get(i))) { + if(blocks.get(i) == null){ continue; } if (blocks.get(i) == current) { @@ -249,13 +251,19 @@ public class DocstrumBlockificationService { boolean toDuplicate = current.isToDuplicate() || inner.isToDuplicate(); current.getSequences().addAll(inner.getSequences()); current = buildTextBlock(current.getSequences(), 0); + current.setToDuplicate(toDuplicate); - toRemove.add(inner); + blocks.set(i, null); itty.set(current); } } } - blocks.removeAll(toRemove); + var blocksIterator = blocks.iterator(); + while(blocksIterator.hasNext()){ + if(blocksIterator.next() == null){ + blocksIterator.remove(); + } + } }