@@ -39,6 +39,7 @@ public class ListenersTest {
3939 Waiter waiter ;
4040
4141 // RetryPolicy listener counters
42+ ListenerCounter rpHandle = new ListenerCounter ();
4243 ListenerCounter rpAbort = new ListenerCounter ();
4344 ListenerCounter rpFailedAttempt = new ListenerCounter ();
4445 ListenerCounter rpRetriesExceeded = new ListenerCounter ();
@@ -54,6 +55,7 @@ public class ListenersTest {
5455 ListenerCounter cbFailure = new ListenerCounter ();
5556
5657 // Fallback listener counters
58+ ListenerCounter fbFailedAttempt = new ListenerCounter ();
5759 ListenerCounter fbSuccess = new ListenerCounter ();
5860 ListenerCounter fbFailure = new ListenerCounter ();
5961
@@ -99,6 +101,7 @@ void beforeMethod() {
99101 cbSuccess .reset ();
100102 cbFailure .reset ();
101103
104+ fbFailedAttempt .reset ();
102105 fbSuccess .reset ();
103106 fbFailure .reset ();
104107
@@ -127,6 +130,7 @@ private <T> FailsafeExecutor<T> registerListeners(RetryPolicy<T> retryPolicy, Ci
127130 circuitBreaker .onFailure (e -> cbFailure .record ());
128131
129132 if (fallback != null ) {
133+ fallback .onFailedAttempt (e -> fbFailedAttempt .record ());
130134 fallback .onSuccess (e -> fbSuccess .record ());
131135 fallback .onFailure (e -> fbFailure .record ());
132136 }
@@ -173,6 +177,7 @@ private void assertForSuccess(boolean sync) throws Throwable {
173177 cbSuccess .assertEquals (1 );
174178 cbFailure .assertEquals (4 );
175179
180+ fbFailedAttempt .assertEquals (0 );
176181 fbSuccess .assertEquals (1 );
177182 fbFailure .assertEquals (0 );
178183
@@ -351,6 +356,7 @@ private void assertForFailingRetryPolicy(boolean sync) throws Throwable {
351356 cbSuccess .assertEquals (3 );
352357 cbFailure .assertEquals (0 );
353358
359+ fbFailedAttempt .assertEquals (0 );
354360 fbSuccess .assertEquals (1 );
355361 fbFailure .assertEquals (0 );
356362
@@ -392,6 +398,7 @@ private void assertForFailingCircuitBreaker(boolean sync) throws Throwable {
392398 cbSuccess .assertEquals (0 );
393399 cbFailure .assertEquals (1 );
394400
401+ fbFailedAttempt .assertEquals (0 );
395402 fbSuccess .assertEquals (1 );
396403 fbFailure .assertEquals (0 );
397404
@@ -433,6 +440,7 @@ private void assertForFailingFallback(boolean sync) throws Throwable {
433440 cbSuccess .assertEquals (1 );
434441 cbFailure .assertEquals (0 );
435442
443+ fbFailedAttempt .assertEquals (1 );
436444 fbSuccess .assertEquals (0 );
437445 fbFailure .assertEquals (1 );
438446
0 commit comments