However, this leads to surprising behavior - the .compose call creates a new executor but only copies the policies and not any other fields. This means your scheduler, executor, and any configured handlers are lost.
I did not see any mention of this in the documentation. Should compose retain the other configurations on a FailsafeExecutor? Or, if that is not desirable, can we document .compose more specifically that it loses this configuration?
Hi Failsafe fans,
We use a Failsafe retry executor to retry potentially failing network requests. In response to an incident, we decide to
.compose(CircuitBreaker)
Our original code:
We updated the code:
However, this leads to surprising behavior - the
.compose
call creates a new executor but only copies thepolicies
and not any other fields. This means yourscheduler
,executor
, and any configured handlers are lost.The correct version is:
I did not see any mention of this in the documentation. Should
compose
retain the other configurations on aFailsafeExecutor
? Or, if that is not desirable, can we document.compose
more specifically that it loses this configuration?