This is an automated email from the ASF dual-hosted git repository. ldywicki pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push: new cd5df7e5b fix(plc4j/spi): PLC4X-344 Handle concurrent access to transaction worklog. cd5df7e5b is described below commit cd5df7e5b43c6725d4e427181c85bb4b4d68699a Author: Łukasz Dywicki <l...@code-house.org> AuthorDate: Wed Oct 19 13:58:55 2022 +0200 fix(plc4j/spi): PLC4X-344 Handle concurrent access to transaction worklog. Signed-off-by: Łukasz Dywicki <l...@code-house.org> --- .../plc4x/java/spi/transaction/RequestTransactionManager.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java index 554c032cc..bdb307d13 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/transaction/RequestTransactionManager.java @@ -101,10 +101,12 @@ public class RequestTransactionManager { private void processWorklog() { while (runningRequests.size() < getNumberOfConcurrentRequests() && !workLog.isEmpty()) { - RequestTransaction next = workLog.remove(); - this.runningRequests.add(next); - Future<?> completionFuture = executor.submit(next.operation); - next.setCompletionFuture(completionFuture); + RequestTransaction next = workLog.poll(); + if (next != null) { + this.runningRequests.add(next); + Future<?> completionFuture = executor.submit(next.operation); + next.setCompletionFuture(completionFuture); + } } }