2020import static org .assertj .core .api .Assertions .assertThatThrownBy ;
2121
2222import com .fasterxml .jackson .databind .JsonNode ;
23- import io .serverlessworkflow .api . types . TryTask ;
23+ import io .serverlessworkflow .impl . TaskContextData ;
2424import io .serverlessworkflow .impl .WorkflowApplication ;
2525import io .serverlessworkflow .impl .WorkflowException ;
2626import io .serverlessworkflow .impl .WorkflowModel ;
3131import java .io .IOException ;
3232import java .time .Duration ;
3333import java .util .Map ;
34+ import java .util .Set ;
3435import java .util .concurrent .CompletableFuture ;
3536import java .util .concurrent .ConcurrentHashMap ;
3637import okhttp3 .mockwebserver .MockResponse ;
@@ -65,17 +66,18 @@ void tearDown() throws IOException {
6566 private class RetryListener implements WorkflowExecutionListener {
6667
6768 private Map <String , Short > taskRetried = new ConcurrentHashMap <>();
68- private Map <String , Short > tryTaskCompleted = new ConcurrentHashMap <>();
69+ private Map <String , Short > taskCompleted = new ConcurrentHashMap <>();
70+ private Set <String > raiseTaskPos = ConcurrentHashMap .newKeySet ();
6971
72+ @ Override
7073 public void onTaskRetried (TaskRetriedEvent ev ) {
7174 taskRetried .put (ev .taskContext ().position ().jsonPointer (), ev .taskContext ().retryAttempt ());
7275 }
7376
77+ @ Override
7478 public void onTaskCompleted (TaskCompletedEvent ev ) {
75- if (ev .taskContext ().task () instanceof TryTask ) {
76- tryTaskCompleted .put (
77- ev .taskContext ().position ().jsonPointer (), ev .taskContext ().retryAttempt ());
78- }
79+ TaskContextData taskContext = ev .taskContext ();
80+ taskCompleted .put (taskContext .position ().jsonPointer (), taskContext .retryAttempt ());
7981 }
8082 }
8183
@@ -103,7 +105,6 @@ void testRetry(String path) throws IOException {
103105 .until (() -> future .join ().as (JsonNode .class ).orElseThrow ().equals (result ));
104106 assertThat (retryListener .taskRetried ).hasSize (1 );
105107 assertThat (retryListener .taskRetried .get ("do/0/tryGetPet/try/0/getPet" )).isEqualTo ((short ) 2 );
106- assertThat (retryListener .tryTaskCompleted .values ()).containsOnly ((short ) 0 );
107108 }
108109
109110 @ Test
@@ -136,9 +137,9 @@ void testNestedRetry() throws IOException {
136137 retryListener .taskRetried .get (
137138 "do/0/tryServerError/try/0/tryCommunication/try/0/getPet" ))
138139 .isEqualTo ((short ) 5 );
139- assertThat (retryListener .tryTaskCompleted .get ("do/0/tryServerError/try/0/tryCommunication/try" ))
140+ assertThat (retryListener .taskCompleted .get ("do/0/tryServerError/try/0/tryCommunication/try" ))
140141 .isEqualTo ((short ) 2 );
141- assertThat (retryListener .tryTaskCompleted .get ("do/0/tryServerError/try" )).isEqualTo ((short ) 0 );
142+ assertThat (retryListener .taskCompleted .get ("do/0/tryServerError/try" )).isEqualTo ((short ) 0 );
142143 }
143144
144145 @ Test
@@ -158,7 +159,9 @@ void testRetryDo() throws IOException {
158159 .orElseThrow ()
159160 .equals (Map .of ("setAfterFailingTask" , "No problem" )));
160161
161- assertThat (retryListener .tryTaskCompleted .get ("do/0/attemptTask/try" )).isEqualTo ((short ) 0 );
162+ assertThat (retryListener .taskCompleted .get ("do/0/attemptTask/try" )).isEqualTo ((short ) 0 );
163+ assertThat (retryListener .taskCompleted )
164+ .containsKey ("do/0/attemptTask/catch/do/0/executeAfterFailingTask" );
162165 }
163166
164167 @ Test
0 commit comments