All Versions
53
Latest Version
Avg Release Cycle
87 days
Latest Release
-
Changelog History
Page 2
Changelog History
Page 2
-
v2.4.4 Changes
๐ Bug Fixes
- ๐ Fixed #298 -
Fallback.onFailedAttempt
not being called correctly
๐ Improvements
- ๐ Fixed #296 - Add Automatic-Module-Name entry to the generated manifest file
API Changes
- โ Added a generic result type
R
toExecutionContext
,Execution
,AsyncExecution
, andAsyncRunnable
. This ensures that result types are unified across the API. It does mean that there are a few minor breaking changes to the API:ContextualSupplier
now has an additional result type parameterR
. Normally this type is used as lambda parameters where the type is inferred, so most users should not be impacted. But any explicit generic declaration of this type will not compile until the new parameter is added.PolicyExecutor
, which is part of the SPI, now accepts an additional result type parameterR
. This is only relevant for SPI users who are implementing their own Policies.
- ๐ Changed
FailsafeExecutor.getAsyncExecution
to acceptAsyncRunnable
instead ofAsyncSupplier
. This is a breaking change for anygetAsyncExecution
calls, but the fix is to simply remove anyreturn
statement. The reason for this change is that the provided object does not need to return a result since the result will already be passed asynchronously to one of theAsyncExecution
complete
orretry
methods.
- ๐ Fixed #298 -
-
v2.4.3 Changes
๐ Bug Fixes
- ๐ Fixed #289 - Binary imcompatibility with code that was compiled against previous Failsafe versions.
-
v2.4.2 Changes
๐ Improvements
- โ Added
RetryPolicy.onRetryScheduled
event handler. - โ Added
ExecutionEvent.getExecutionCount()
andExecutionContext.getExecutionCount()
, which distinguishes between attempts which may have been rejected and completed executions. - โ Added
Failsafe.none
to create a no-opFailsafeExecutor
. - ๐ Improved support for outer Timeouts with retries.
- ๐ Fixed #221 - Added support for
FailsafeExecutor.with(Executor)
. - ๐ Fixed #277 - Changed
Timeout
to use Failsafe's internal scheduler, so that user providedExecutorService
shutdowns do not interfere with timeouts. - ๐ Fixed #266 - Propagate
Future
cancellation to suppliedCompletionStage
when usinggetStageAsync
.
๐ Bug Fixes
- ๐ Fixed #267 - Allow null fallback values to be passed through when using nested fallbacks.
- โ Added
-
v2.4.1 Changes
๐ Improvements
- ๐ Fixed #234 - An outer
Timeout
should cancel any inner retries.
API Changes
- ๐ Deprecated
Timeout.withCancel(boolean)
andTimeout.canCancel()
. Timeouts always cancel any executions and inner retries. - โ Added
Timeout.withInterrupt(boolean)
to take the place ofwithCancel
. - โ Added
ExecutionEvent.getElapsedAttemptTime()
.
- ๐ Fixed #234 - An outer
-
v2.4.0 Changes
๐ Improvements
- โ Added time based thresholding support to
CircuitBreaker
via:withFailureThreshold(int failureThreshold, Duration failureThresholdingPeriod)
withFailureThreshold(int failureThreshold, int failureExecutionThreshold, Duration failureThresholdingPeriod)
withFailureRateThreshold(int failureRateThreshold, int failureExecutionThreshold, Duration failureThresholdingPeriod)
- โ Added getters to
CircuitBreaker
for existing count based thresholding settings:getFailureThresholdingCapacity()
getSuccessThresholdingCapacity()
- And added getters to
CircuitBreaker
for new time based thresholding settings:getFailureRateThreshold()
getFailureExecutionThreshold()
getFailureThresholdingPeriod()
- โ Added some new metrics to
CircuitBreaker
:getSuccessRate()
getFailureRate()
getExecutionCount()
API Changes
- ๐ Changed the return type of
CircuitBreaker
'sgetFailureThreshold()
andgetSuccessThreshold()
fromRatio
toint
.getFailureThresholdingCapacity
,getFailureRateThreshold
,getFailureExecutionThreshold
, andgetSuccessThresholdingCapacity
provide additional detail about thresholding configuration. - โ Removed support for the previously deprecated
CircuitBreaker.withTimeout
. TheTimeout
policy should be used instead.
- โ Added time based thresholding support to
-
v2.3.5 Changes
๐ Bug Fixes
- ๐ Fixed #242 - Delays not occurring between manually triggered async execution retries.
-
v2.3.4 Changes
๐ Improvements
- ๐ Re-worked internal threading to only create async threads immediately prior to supplier execution. See #230.
๐ Bug Fixes
- ๐ Fixed #240 -
handleResult(null)
always triggering when an exception is thrown.
-
v2.3.3 Changes
February 10, 2020๐ Improvements
โ Added support for
CompletionStage
to theFallback
policy.๐ Bug Fixes
- ๐ Fixed #224 - Allow combining random delay and jitter.
API Changes
- ๐ฆ
Fallback.apply
was made package private. - ๐ฆ
DelayablePolicy.computeDelay
was made package private.
-
v2.3.2 Changes
January 25, 2020๐ Improvements
- โ Added
CircuitBreaker.getRemainingDelay()
. - โ Added support for
Fallback.VOID
.
๐ Bug Fixes
- ๐ Fixed #216 - Incorrect computation of randomDelay.
- โ Added
-
v2.3.1 Changes
August 22, 2019๐ Bug Fixes
- ๐ Fixed #206 - Problem with Fallback converting from failure to success.
๐ Improvements
- โฑ Set
setRemoveOnCancelPolicy(true)
for the internal delay scheduler. - โ Added
Scheduler.DEFAULT
to return the default scheduler Failsafe uses.