public List parseMessage()

in src/main/java/com/amazonaws/services/cloudtrail/processinglibrary/manager/SqsManager.java [148:176]


    public List<CloudTrailSource> parseMessage(List<Message> sqsMessages) {

        List<CloudTrailSource> sources = new ArrayList<>();

        for (Message sqsMessage : sqsMessages) {
            boolean parseMessageSuccess = false;
            ProgressStatus parseMessageStatus = new ProgressStatus(ProgressState.parseMessage, new BasicParseMessageInfo(sqsMessage, parseMessageSuccess));
            final Object reportObject = progressReporter.reportStart(parseMessageStatus);
            CloudTrailSource ctSource = null;

            try {
                ctSource = sourceSerializer.getSource(sqsMessage);

                if (containsCloudTrailLogs(ctSource)) {
                    sources.add(ctSource);
                    parseMessageSuccess = true;
                }
            } catch (Exception e) {
                LibraryUtils.handleException(exceptionHandler, parseMessageStatus, e, "Failed to parse sqs message.");

            } finally {
                if (containsCloudTrailValidationMessage(ctSource) || shouldDeleteMessageUponFailure(parseMessageSuccess)) {
                    deleteMessageFromQueue(sqsMessage, new ProgressStatus(ProgressState.deleteMessage, new BasicParseMessageInfo(sqsMessage, false)));
                }
                LibraryUtils.endToProcess(progressReporter, parseMessageSuccess, parseMessageStatus, reportObject);
            }
        }
        return sources;
    }