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

ahuber pushed a commit to branch v4
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/v4 by this push:
     new 918669509c5 CAUSEWAY-3897: another attempt on stabilizing tests (RO)
918669509c5 is described below

commit 918669509c5a2cda71c8fcd259707c49ef872e5f
Author: Andi Huber <[email protected]>
AuthorDate: Tue Jul 8 23:27:32 2025 +0200

    CAUSEWAY-3897: another attempt on stabilizing tests (RO)
---
 .../test/scenarios/Abstract_IntegTest.java              | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/viewers/restfulobjects/test/src/test/java/org/apache/causeway/viewer/restfulobjects/test/scenarios/Abstract_IntegTest.java
 
b/viewers/restfulobjects/test/src/test/java/org/apache/causeway/viewer/restfulobjects/test/scenarios/Abstract_IntegTest.java
index 90827c8c3df..823d8aa2449 100644
--- 
a/viewers/restfulobjects/test/src/test/java/org/apache/causeway/viewer/restfulobjects/test/scenarios/Abstract_IntegTest.java
+++ 
b/viewers/restfulobjects/test/src/test/java/org/apache/causeway/viewer/restfulobjects/test/scenarios/Abstract_IntegTest.java
@@ -32,7 +32,9 @@
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
 import org.springframework.transaction.annotation.Propagation;
+
 import org.apache.causeway.applib.services.bookmark.BookmarkService;
+import org.apache.causeway.applib.services.xactn.TransactionState;
 import 
org.apache.causeway.persistence.jpa.eclipselink.CausewayModulePersistenceJpaEclipselink;
 import 
org.apache.causeway.viewer.restfulobjects.test.CausewayViewerRestfulObjectsIntegTestAbstract;
 import org.apache.causeway.viewer.restfulobjects.test.domain.UniversityModule;
@@ -98,7 +100,20 @@ protected void beforeEach(){
     @Override
     @AfterEach
     protected void afterEach(){
-        transactionService.runTransactional(Propagation.REQUIRED, () -> {
+
+        int maxiter = 20;
+        while(maxiter>0
+                && 
transactionService.currentTransactionState()!=TransactionState.NONE) {
+            try {
+                Thread.sleep(100);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            System.err.printf("Waiting for current transaction to complete 
(%d)%n", maxiter);
+            --maxiter;
+        }
+
+        transactionService.runTransactional(Propagation.REQUIRES_NEW, () -> {
             staffMemberRepository.removeAll();
             deptHeadRepository.findAll().forEach(x -> x.setDepartment(null));
             departmentRepository.findAll().forEach(x -> x.setDeptHead(null));

Reply via email to