@@ -50,6 +50,16 @@ private ExecutingService register(DBOS dbos) {
5050 return service ;
5151 }
5252
53+ private static void awaitStepCount (DBOS dbos , String wfid , int expected , int timeoutMs )
54+ throws Exception {
55+ long deadline = System .currentTimeMillis () + timeoutMs ;
56+ while (System .currentTimeMillis () < deadline ) {
57+ if (dbos .listWorkflowSteps (wfid ).size () == expected ) return ;
58+ Thread .sleep (50 );
59+ }
60+ assertEquals (expected , dbos .listWorkflowSteps (wfid ).size ());
61+ }
62+
5363 @ Test
5464 @ EnabledForJreRange (min = JRE .JAVA_21 )
5565 public void virtualThreadPoolJava21 () throws Exception {
@@ -201,8 +211,7 @@ public void executeWithStep() throws Exception {
201211
202212 DBUtils .setWorkflowState (dataSource , wfid , WorkflowState .PENDING .name ());
203213 DBUtils .deleteAllStepOutputs (dataSource , wfid );
204- steps = dbos .listWorkflowSteps (wfid );
205- assertEquals (0 , steps .size ());
214+ awaitStepCount (dbos , wfid , 0 , 2000 );
206215
207216 WorkflowHandle <String , ?> handle = dbosExecutor .executeWorkflowById (wfid , true , false );
208217
@@ -212,8 +221,7 @@ public void executeWithStep() throws Exception {
212221
213222 wfs = dbos .listWorkflows (null );
214223 assertEquals (WorkflowState .SUCCESS , wfs .get (0 ).status ());
215- steps = dbos .listWorkflowSteps (wfid );
216- assertEquals (2 , steps .size ());
224+ awaitStepCount (dbos , wfid , 2 , 2000 );
217225 }
218226 }
219227
@@ -246,8 +254,7 @@ public void ReExecuteWithStepTwoOnly() throws Exception {
246254
247255 DBUtils .setWorkflowState (dataSource , wfid , WorkflowState .PENDING .name ());
248256 DBUtils .deleteStepOutput (dataSource , wfid , 1 );
249- steps = dbos .listWorkflowSteps (wfid );
250- assertEquals (1 , steps .size ());
257+ awaitStepCount (dbos , wfid , 1 , 2000 );
251258
252259 WorkflowHandle <String , ?> handle = dbosExecutor .executeWorkflowById (wfid , true , false );
253260
@@ -260,8 +267,7 @@ public void ReExecuteWithStepTwoOnly() throws Exception {
260267
261268 wfs = dbos .listWorkflows (null );
262269 assertEquals (WorkflowState .SUCCESS , wfs .get (0 ).status ());
263- steps = dbos .listWorkflowSteps (wfid );
264- assertEquals (2 , steps .size ());
270+ awaitStepCount (dbos , wfid , 2 , 2000 );
265271 }
266272 }
267273
0 commit comments