All Versions
39
Latest Version
Avg Release Cycle
87 days
Latest Release
-

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's getFailureThreshold() and getSuccessThreshold() from Ratio to int. getFailureThresholdingCapacity, getFailureRateThreshold, getFailureExecutionThreshold, and getSuccessThresholdingCapacity provide additional detail about thresholding configuration.
    • โœ‚ Removed support for the previously deprecated CircuitBreaker.withTimeout. The Timeout policy should be used instead.
  • 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 the Fallback 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.
  • 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, 2019

    Behavior Changes

    • FailsafeExecutor.get and FailsafeExecutor.run will no longer wrap Error instances in FailsafeException 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 with TimeoutExceededException.
    • โž• Added ExecutionContext.isCancelled().
    • โž• Added ExecutionContext.getElapsedAttemptTime().
    • โฑ Made the internal delay scheduler more adaptive.

    API Changes

    • ๐Ÿ—„ Deprecated CircuitBreaker.withTimeout in favor of using a separate Timeout policy.

    ๐Ÿ› Bug Fixes

    • ๐Ÿ”€ Reset interrupt flag when a synchronous execution is interrupted.
    • ๐Ÿ‘Œ Improved handling around externally completing a Failsafe CompletableFuture.
  • 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 the net.jodah.failsafe.function package.
    • โœ‚ Removed RetryPolicy.canApplyDelayFn
  • 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.