@Override @SuppressWarnings("unchecked") protected ExecutionResult onFailure(ExecutionResult result) { try { return result.withResult(policy.apply(result.getResult(), result.getFailure(), execution.copy())); } catch (Exception e) { return ExecutionResult.failure(e); } }