in governance/src/main/java/org/apache/servicecomb/governance/handler/ext/FailurePredictor.java [56:80]
static boolean canRetryForException(Map<Class<? extends Throwable>, List<String>> retryList,
Throwable throwableToSearchIn) {
// retry on exception type on message match
int infiniteLoopPreventionCounter = 10;
while (throwableToSearchIn != null && infiniteLoopPreventionCounter > 0) {
infiniteLoopPreventionCounter--;
for (Entry<Class<? extends Throwable>, List<String>> c : retryList.entrySet()) {
Class<? extends Throwable> key = c.getKey();
if (key.isAssignableFrom(throwableToSearchIn.getClass())) {
if (c.getValue() == null || c.getValue().isEmpty()) {
return true;
} else {
String msg = throwableToSearchIn.getMessage();
for (String val : c.getValue()) {
if (val.equals(msg)) {
return true;
}
}
}
}
}
throwableToSearchIn = throwableToSearchIn.getCause();
}
return false;
}