final CircuitBreaker circuitBreaker;
final ListenerConfig<?, Object> listeners;
long attemptStartTime;
volatile Object lastResult;
volatile Throwable lastFailure;
<BUG>volatile boolean completed;
volatile boolean success;</BUG>
volatile long waitNanos;
AbstractExecution(RetryPolicy retryPolicy, CircuitBreaker circuitBreaker, ListenerConfig<?, Object> listeners) {
super(new Duration(System.nanoTime(), TimeUnit.NANOSECONDS));

final CircuitBreaker circuitBreaker;
final ListenerConfig<?, Object> listeners;
long attemptStartTime;
volatile Object lastResult;
volatile Throwable lastFailure;
volatile boolean completed;
volatile boolean retriesExceeded;
volatile boolean success;
volatile long waitNanos;
AbstractExecution(RetryPolicy retryPolicy, CircuitBreaker circuitBreaker, ListenerConfig<?, Object> listeners) {
super(new Duration(System.nanoTime(), TimeUnit.NANOSECONDS));
