diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java index 3b1a68563..9ebe1ab82 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadPreparationService.java @@ -141,8 +141,12 @@ public class DownloadPreparationService { public void processingRedactionResultMessage(RedactionResultMessage redactionResultMessage) { String downloadId = redactionResultMessage.getDownloadId(); - long totalFiles = downloadStatusPersistenceService.getStatus(downloadId).getFiles().size(); List redactionFileResults = redactionFileResultsMap.get(downloadId); + if (redactionFileResults == null) { + log.info("The creation of download has finished for downloadId: {} ", downloadId); + return; + } + long totalFiles = downloadStatusPersistenceService.getStatus(downloadId).getFiles().size(); Optional resultOptional = redactionFileResults.stream().filter(r -> r.getFileId().equals(redactionResultMessage.getFileId())).findFirst(); resultOptional.ifPresent(redactionFileResult -> { redactionFileResult.setRedactionResultDetailList(redactionResultMessage.getRedactionResultDetails()); @@ -160,18 +164,22 @@ public class DownloadPreparationService { public void checkForRetryProcess(String downloadId, String fileId, boolean unapprovedFile) { List redactionFileResults = redactionFileResultsMap.get(downloadId); + if (redactionFileResults == null) { + log.info("The creation of download has finished for downloadId: {} ", downloadId); + return; + } Optional resultOptional = redactionFileResults.stream().filter(r -> r.getFileId().equals(fileId)).findFirst(); if (resultOptional.isPresent()) { RedactionFileResult result = resultOptional.get(); if (result.getRetryCounter() >= MAX_RETRY) { // update download status - log.info("Failed download after max retries for downloadId: {}", downloadId); + log.info("Failed download after max retries: {} for downloadId: {}, set the download status to FAILED", result.getRetryCounter(), downloadId); downloadStatusPersistenceService.updateStatus(downloadId, DownloadStatusValue.FAILED); } else { // retry to send it again result.increaseRetryCounter(); var downloadStatus = downloadStatusPersistenceService.getStatus(downloadId); RedactionMessage.RedactionMessageBuilder messageBuilder = this.generateGeneralRedactionMessage(downloadId, downloadStatus); RedactionMessage message = messageBuilder.fileId(fileId).unapprovedFile(unapprovedFile).build(); - log.info("Resending redaction request for downloadId:{} fileId: {} to pdftron-redaction-queue", downloadId, fileId); + log.info("Resending redaction request for downloadId:{} fileId: {} to {}", downloadId, fileId, MessagingConfiguration.PDFTRON_QUEUE); rabbitTemplate.convertAndSend(MessagingConfiguration.PDFTRON_QUEUE, message); } } @@ -190,6 +198,7 @@ public class DownloadPreparationService { storeZipFile(downloadStatus, fileSystemBackedArchiver); updateStatusToReady(downloadStatus, fileSystemBackedArchiver); + redactionFileResultsMap.remove(downloadId); notificationPersistenceService.insertNotification(AddNotificationRequest.builder() .userId(downloadStatus.getUserId()) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java index eac320b1b..2356adf4c 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/RedactionDlqMessageReceiver.java @@ -52,7 +52,7 @@ public class RedactionDlqMessageReceiver { try { fileId = jsonNode.findValue("fileId").asText(); var unapproved = jsonNode.findValue("unapprovedFile"); - log.info("Received a dead message with downloadId: {}, fileId: {} retry", downloadId, fileId); + log.info("Received a dead message with downloadId: {}, fileId: {} check for retry", downloadId, fileId); downloadPreparationService.checkForRetryProcess(downloadId, fileId, unapproved.asBoolean()); } catch (Exception e) {