diff --git a/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/OcrImageFactory.java b/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/OcrImageFactory.java index 0bf3f7a..c4b5e9f 100644 --- a/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/OcrImageFactory.java +++ b/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/OcrImageFactory.java @@ -96,6 +96,7 @@ public class OcrImageFactory { } imageProcessingThread.setAllImagesExtracted(true); + imageProcessingThread.interrupt(); imageProcessingThread.join(); diff --git a/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/threads/ImageProcessingThread.java b/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/threads/ImageProcessingThread.java index 6fec116..c7a81e9 100644 --- a/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/threads/ImageProcessingThread.java +++ b/ocr-service-v1/ocr-service-processor/src/main/java/com/knecon/fforesight/service/ocr/processor/service/threads/ImageProcessingThread.java @@ -57,13 +57,20 @@ public class ImageProcessingThread extends Thread { @Override public void run() { - while (!allImagesExtracted) { - final UnprocessedImage image = imageInputQueue.take(); - var ocrImage = this.process(image); - imageOutputQueue.put(ocrImage); + try { + while (!allImagesExtracted) { + final UnprocessedImage image = imageInputQueue.take(); + var ocrImage = this.process(image); + try { + imageOutputQueue.put(ocrImage); + } catch (InterruptedException e) { + imageOutputQueue.put(ocrImage); + } + } + } catch (InterruptedException e) { + log.info("All images extracted, emptying processing queue and stopping"); } - try { while (true) { final UnprocessedImage image = imageInputQueue.remove();