in src/main/java/feign/error/AnnotationErrorDecoder.java [115:131]
Optional<ErrorHandling> readErrorHandlingIncludingInherited(Class<?> apiType) {
if (apiType.isAnnotationPresent(ErrorHandling.class)) {
return Optional.of(apiType.getAnnotation(ErrorHandling.class));
}
for (Class<?> parentInterface : apiType.getInterfaces()) {
Optional<ErrorHandling> errorHandling =
readErrorHandlingIncludingInherited(parentInterface);
if (errorHandling.isPresent()) {
return errorHandling;
}
}
// Finally, if there's a superclass that isn't Object check if the superclass has anything
if (!apiType.isInterface() && !apiType.getSuperclass().equals(Object.class)) {
return readErrorHandlingIncludingInherited(apiType.getSuperclass());
}
return Optional.empty();
}