Fault Tolerance 6.9.1

Today, we announce the release of SmallRye Fault Tolerance 6.9.1. This release contains an important bugfix.

After the big async rewrite, the retry strategy used recursion to implement a loop even in the synchronous case. That is wrong, because it may easily lead to a stack overflow error in case of a high number of retry attempts. This bug is now fixed. The internal Future type has gained a dedicated loop() method to implement while loops. The implementation is structured so that recursion is used for asynchronous iterations, while classic loop is used for synchronous iterations. In other words, it is a "just enough" implementation of trampolines. Thanks Maxuel Macavilca Montjoy for the issue report!

Also, with this release, the portable extension in SmallRye Fault Tolerance ignores synthetic methods. This means they are not intercepted anymore by the fault tolerance interceptor. The Quarkus extension for SmallRye Fault Tolerance has already been ignoring synthetic methods for a long time; now all the other CDI Full based implementations work similarly.

As usual, if you have any ideas for improvements, please file an issue!