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);
+            }
         }
     }
 

Reply via email to