DelayFunction<Object, Throwable> delayFunction = (DelayFunction<Object, Throwable>) policy.getDelayFn(); if (delayFunction != null && policy.canApplyDelayFn(result.getResult(), result.getFailure())) { Duration computedDelay = delayFunction.computeDelay(result.getResult(), result.getFailure(), execution);