All Versions
39
Latest Version
Avg Release Cycle
87 days
Latest Release
-
Changelog History
Page 1
Changelog History
Page 1
-
v2.4.0
๐ 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
๐ Bug Fixes
- ๐ Fixed #242 - Delays not occurring between manually triggered async execution retries.
-
v2.3.4
๐ 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
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
January 25, 2020๐ Improvements
- โ Added
CircuitBreaker.getRemainingDelay()
. - โ Added support for
Fallback.VOID
.
๐ Bug Fixes
- ๐ Fixed #216 - Incorrect computation of randomDelay.
- โ Added
-
v2.3.1
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.
-
v2.3.0
August 16, 2019Behavior Changes
FailsafeExecutor.get
andFailsafeExecutor.run
will no longer wrapError
instances inFailsafeException
before throwing.
๐ Bug Fixes
- ๐ Fixed potential race between
Timeout
interrupts and execution completion.
-
v2.2.0
August 12, 2019๐ Improvements
- โ Added a new
Timeout
policy that fails withTimeoutExceededException
. - โ Added
ExecutionContext.isCancelled()
. - โ Added
ExecutionContext.getElapsedAttemptTime()
. - โฑ Made the internal delay scheduler more adaptive.
API Changes
- ๐ Deprecated
CircuitBreaker.withTimeout
in favor of using a separateTimeout
policy.
๐ Bug Fixes
- ๐ Reset interrupt flag when a synchronous execution is interrupted.
- ๐ Improved handling around externally completing a Failsafe
CompletableFuture
.
- โ Added a new
-
v2.1.1
July 29, 2019๐ Improvements
- โ Added support for
CircuitBreaker.withDelay(DelayFunction)
- โ Added
Fallback.ofException
for returning custom exceptions. - โ Added
ExecutionContext.getLastResult
and.getLastFailure
to support retries that depend on previous executions - โ Added
CircuitBreakerOpenException.getCircuitBreaker
API Changes
- ๐ฆ
RetryPolicy.DelayedFunction
was moved to thenet.jodah.failsafe.function
package. - โ Removed
RetryPolicy.canApplyDelayFn
- โ Added support for
-
v2.1.0
July 20, 2019๐ Improvements
- โ Added support for
Failsafe.with(List<Policy<R>>)
. - ๐ Allow
null
Fallback
values.
๐ Bug Fixes
- Issue #190 - Failure listener called on success for async executions.
- Issue #191 - Add missing listeners to RetryPolicy copy constructor.
- Issue #192 - Problem with detecting completion when performing async execution.
Behavior Changes
- A standalone or async execution will only be marked as complete when all policies are complete.
Execution.isComplete
reflects this.
- โ Added support for