diff --git a/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java b/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java index 08459b76..52c93bb4 100644 --- a/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java +++ b/code/libraries/blocking-thread-pool/src/main/java/nu/marginalia/util/ProcessingIterator.java @@ -38,7 +38,7 @@ public class ProcessingIterator implements Iterator { private void executeJob(ProcessingJob job) { try { - job.run(j -> executorService.submit(() -> executeTask(j))); + job.run(this::executeTask); } catch (Exception e) { logger.warn("Exception while processing", e); } finally { @@ -53,13 +53,15 @@ public class ProcessingIterator implements Iterator { return; } - try { - queue.put(task.get()); - } catch (Exception e) { - logger.warn("Exception while processing", e); - } finally { - sem.release(); - } + executorService.submit(() -> { + try { + queue.put(task.get()); + } catch (Exception e) { + logger.warn("Exception while processing", e); + } finally { + sem.release(); + } + }); } /** Returns true if there are more documents to be processed.