public static AmazonServiceException transformDynamoDBStreamsToKinesisGetRecords()

in src/main/java/com/amazonaws/services/dynamodbv2/streamsadapter/model/AmazonServiceExceptionTransformer.java [210:235]


    public static AmazonServiceException transformDynamoDBStreamsToKinesisGetRecords(AmazonServiceException ase, SkipRecordsBehavior skipRecordsBehavior) {
        final AmazonServiceException transformed;
        if (ase == null) {
            return ase;
        }
        if (ase instanceof com.amazonaws.services.dynamodbv2.model.ExpiredIteratorException) { // (1)
            transformed = new com.amazonaws.services.kinesis.model.ExpiredIteratorException(buildErrorMessage(ase));
        } else if (ase instanceof InternalServerErrorException) { // (2)
            transformed = new AmazonServiceException(buildErrorMessage(ase), ase);
        } else if (ase instanceof com.amazonaws.services.dynamodbv2.model.LimitExceededException) { // (3)
            transformed = new com.amazonaws.services.kinesis.model.ProvisionedThroughputExceededException(buildErrorMessage(ase));
        } else if (ase instanceof com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException) { // (4)
            transformed = new com.amazonaws.services.kinesis.model.ResourceNotFoundException(buildErrorMessage(ase));
        } else if (DYNAMODB_STREAMS_THROTTLING_EXCEPTION_ERROR_CODE.equals(ase.getErrorCode())) { // (5)
            transformed = new com.amazonaws.services.kinesis.model.ProvisionedThroughputExceededException(buildErrorMessage(ase));
        } else if (ase instanceof com.amazonaws.services.dynamodbv2.model.TrimmedDataAccessException) { // (6)
            if (skipRecordsBehavior == SkipRecordsBehavior.SKIP_RECORDS_TO_TRIM_HORIZON) { // Data loss is acceptable
                transformed = new com.amazonaws.services.kinesis.model.ExpiredIteratorException(buildErrorMessage(ase));
            } else { // Data loss is NOT acceptable
                throw new UnableToReadMoreRecordsException("Attempted to access trimmed data. Data has been lost", ase);
            }
        } else {
            transformed = null;
        }
        return applyFields(ase, transformed);
    }