This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch CAUSEWAY-3799
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/CAUSEWAY-3799 by this push:
     new 20a121aef1 CAUSEWAY-3799: uses DeadlockRecognizer in the retry logic 
of RunBackgroundCommandsJob also
20a121aef1 is described below

commit 20a121aef1730e1677eeab8ac7dae316fae88223
Author: Dan Haywood <[email protected]>
AuthorDate: Fri Jun 28 13:33:58 2024 +0100

    CAUSEWAY-3799: uses DeadlockRecognizer in the retry logic of 
RunBackgroundCommandsJob also
---
 .../extensions/commandlog/applib/job/RunBackgroundCommandsJob.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/job/RunBackgroundCommandsJob.java
 
b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/job/RunBackgroundCommandsJob.java
index b1d3632fc7..5e48163727 100644
--- 
a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/job/RunBackgroundCommandsJob.java
+++ 
b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/job/RunBackgroundCommandsJob.java
@@ -30,6 +30,7 @@ import javax.inject.Inject;
 import org.apache.causeway.commons.functional.Try;
 import org.apache.causeway.core.config.CausewayConfiguration;
 import org.apache.causeway.core.interaction.session.CausewayInteraction;
+import org.apache.causeway.core.metamodel.services.deadlock.DeadlockRecognizer;
 import 
org.apache.causeway.core.runtimeservices.transaction.TransactionServiceSpring;
 import 
org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntryRepository;
 
@@ -89,6 +90,7 @@ public class RunBackgroundCommandsJob implements Job {
     @Inject CommandLogEntryRepository commandLogEntryRepository;
     @Inject CommandExecutorService commandExecutorService;
     @Inject BackgroundCommandsJobControl backgroundCommandsJobControl;
+    @Inject DeadlockRecognizer deadlockRecognizer;
 
     @Inject List<RunBackgroundCommandsJobListener> listeners;
     @Autowired private CausewayConfiguration causewayConfiguration;
@@ -273,12 +275,12 @@ public class RunBackgroundCommandsJob implements Job {
         .ifFailureFail();
     }
 
-    private static boolean isEncounteredDeadlock(Try<?> result) {
+    private boolean isEncounteredDeadlock(Try<?> result) {
         if (!result.isFailure()) {
             return false;
         }
         return result.getFailure()
-                .map(throwable -> throwable instanceof 
DeadlockLoserDataAccessException)
+                .map(throwable -> deadlockRecognizer.isDeadlock(throwable))
                 .orElse(false);
     }
 
@@ -289,5 +291,4 @@ public class RunBackgroundCommandsJob implements Job {
             // do nothing - continue
         }
     }
-
 }

Reply via email to