import java.util.function.Function;
import java.util.function.Supplier;
public class RetriableTask<T> extends BaseTask<T> {
protected final String _name;
protected final Function<Integer, Task<T>> _taskFunction;
<BUG>protected final AbstractRetryPolicy<T> _policy;
protected long _startedAt;
public RetriableTask(String name, Function<Integer, Task<T>> taskFunction, AbstractRetryPolicy<T> policy)
{</BUG>
ArgumentUtil.requireNotNull(taskFunction, "taskFunction");

import java.util.function.Function;
import java.util.function.Supplier;
public class RetriableTask<T> extends BaseTask<T> {
protected final String _name;
protected final Function<Integer, Task<T>> _taskFunction;
protected final RetryPolicy<T> _policy;
protected long _startedAt;
public RetriableTask(String name, Function<Integer, Task<T>> taskFunction, RetryPolicy<T> policy)
{
ArgumentUtil.requireNotNull(taskFunction, "taskFunction");
