in src/main/java/com/aliyuncs/kms/secretsmanager/client/service/DefaultSecretManagerClientBuilder.java [432:456]
private GetSecretValueResponse retryGetSecretValue(GetSecretValueRequest req, RegionInfo regionInfo) throws ClientException {
int retryTimes = 0;
while (true) {
if (countDownLatch.getCount() == 0) {
return null;
}
long waitTimeExponential = backoffStrategy.getWaitTimeExponential(retryTimes);
if (waitTimeExponential < 0) {
throw new ClientException(CacheClientConstant.SDK_READ_TIMEOUT, "Times limit exceeded");
}
try {
Thread.sleep(waitTimeExponential);
} catch (InterruptedException ignore) {
}
try {
return getSecretValue(regionInfo, req);
} catch (ClientException e) {
CommonLogger.getCommonLogger(CacheClientConstant.MODE_NAME).errorf("action:getSecretValue regionInfo:{}", regionInfo, e);
if (!BackoffUtils.judgeNeedRecoveryException(e)) {
throw e;
}
}
retryTimes++;
}
}