public Void handleSdkError()

in src/main/java/com/awslabs/resultsiterator/implementations/BasicSdkErrorHandler.java [40:69]


    public Void handleSdkError(SdkClientException e) {
        String message = e.getMessage();
        List<String> errors = List.empty();

        if (message.contains(REGION_EXCEPTION_1) || message.contains(REGION_EXCEPTION_2)) {
            errors = errors.append(REGION_ERROR);
            errors = errors.append(GENERIC_CREDENTIALS_SOLUTION);
            errors = errors.append(REGION_SOLUTION);
        } else if (message.contains(MISSING_CREDENTIALS_EXCEPTION)) {
            errors = errors.append(MISSING_CREDENTIALS_ERROR);
            errors = errors.append(GENERIC_CREDENTIALS_SOLUTION);
            errors = errors.append(MISSING_CREDENTIALS_SOLUTION);
        } else if (message.contains(BAD_CREDENTIALS_EXCEPTION)) {
            errors = errors.append(BAD_CREDENTIALS_ERROR);
            errors = errors.append(BAD_CREDENTIALS_SOLUTION);
        } else if (message.contains(BAD_PERMISSIONS_EXCEPTION)) {
            errors = errors.append(message.substring(0, message.indexOf("(")));
            errors = errors.append(BAD_PERMISSIONS_SOLUTION);
        } else if (message.contains(HTTP_REQUEST_EXCEPTION)) {
            errors = errors.append(message.substring(0, message.indexOf(":")));
            errors = errors.append(HTTP_REQUEST_SOLUTION);
        }

        if (errors.size() != 0) {
            errors.forEach(log::error);
            log.error("Failed to obtain AWS credentials. See the above messages to determine the root cause");
        }

        throw e;
    }