if (!success)
<BUG>listeners.handleFailedAttempt(result, failure, this);
</BUG>
if (isAbortable)
<BUG>listeners.handleAbort(result, failure, this);
</BUG>
else {
if (retriesExceeded)
<BUG>listeners.handleRetriesExceeded(result, failure, this);
</BUG>
if (completed)

if (!success)
config.handleFailedAttempt(result, failure, this);
if (isAbortable)
config.handleAbort(result, failure, this);
else {
if (retriesExceeded)
config.handleRetriesExceeded(result, failure, this);
