in aws-core-common/src/main/java/jetbrains/buildServer/util/amazon/retry/AmazonRetrier.java [28:53]
static Retrier defaultAwsRetrier(final int retriesNum, final int retryDelay, @NotNull final Logger logger) {
return Retrier.withAttempts(retriesNum + 1, Retrier.DelayStrategy.linearBackOff(retryDelay))
.registerListener(new LoggingRetrierListener(logger))
.registerListener(
new AbortingListener(ExecutionException.class, SSLException.class, UnknownHostException.class, SocketException.class, InterruptedIOException.class, InterruptedException.class, IOException.class) {
@Override
public <T> void onFailure(@NotNull Callable<T> callable, int retry, @NotNull Exception e) {
if (e instanceof InterruptedException) {
Thread.currentThread().interrupt();
return;
}
final RecoverableException recoverableException = ExceptionUtil.getCause(e, RecoverableException.class);
if (recoverableException != null && recoverableException.isRecoverable()) {
return;
}
final SdkClientException sdkClientException = ExceptionUtil.getCause(e, SdkClientException.class);
if (sdkClientException != null && sdkClientException.retryable()) {
return;
}
super.onFailure(callable, retry, e);
}
});
}