From 4ccf355dcf8f74534e52cb238c0458b1028a18c2 Mon Sep 17 00:00:00 2001 From: yhampe Date: Mon, 15 Jan 2024 12:21:00 +0100 Subject: [PATCH] RED-6805: As Operation I want to see why downloads are in an ERROR state added errorcause to repository --- .../v1/processor/entity/download/DownloadStatusEntity.java | 2 ++ .../service/download/DownloadDLQMessageReceiver.java | 6 ++++-- .../persistence/DownloadStatusPersistenceService.java | 4 ++-- .../persistence/repository/DownloadStatusRepository.java | 4 ++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadStatusEntity.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadStatusEntity.java index 629eef07c..d7e9606d0 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadStatusEntity.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/entity/download/DownloadStatusEntity.java @@ -60,6 +60,8 @@ public class DownloadStatusEntity { OffsetDateTime lastDownload; @Column long fileSize; + @Column + String errorCause; @ManyToOne(fetch = FetchType.EAGER) DossierEntity dossier; diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java index 27d60d0f9..e76ea0b40 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/download/DownloadDLQMessageReceiver.java @@ -68,9 +68,11 @@ public class DownloadDLQMessageReceiver { private void setDownloadFailed(String userId, String downloadId) { + String errorCause = "unknown error cause"; + retryTemplate.execute(retryContext -> { log.warn("Retrying {} time to set FAILED status for downloadJob userId: {} storageId: {}", retryContext.getRetryCount(), userId, downloadId); - downloadStatusPersistenceService.updateStatus(downloadId, DownloadStatusValue.FAILED); + downloadStatusPersistenceService.updateStatus(downloadId, DownloadStatusValue.FAILED,errorCause); return null; }); } @@ -79,7 +81,7 @@ public class DownloadDLQMessageReceiver { retryTemplate.execute(retryContext -> { log.warn("Retrying {} time to set FAILED status for downloadJob userId: {} storageId: {}", retryContext.getRetryCount(), userId, downloadId); - downloadStatusPersistenceService.updateStatus(downloadId, DownloadStatusValue.FAILED); + downloadStatusPersistenceService.updateStatus(downloadId, DownloadStatusValue.FAILED, errorCause); return null; }); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java index a32bb81d4..b7bc294d8 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/DownloadStatusPersistenceService.java @@ -65,9 +65,9 @@ public class DownloadStatusPersistenceService { @Transactional - public void updateStatus(String storageId, DownloadStatusValue status) { + public void updateStatus(String storageId, DownloadStatusValue status, String errorCause) { - downloadStatusRepository.updateStatus(storageId, status); + downloadStatusRepository.updateStatusAndErrorCause(storageId, status, errorCause); } diff --git a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java index 277169e4e..cf8643e0a 100644 --- a/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java +++ b/persistence-service-v1/persistence-service-processor-v1/src/main/java/com/iqser/red/service/persistence/management/v1/processor/service/persistence/repository/DownloadStatusRepository.java @@ -20,6 +20,10 @@ public interface DownloadStatusRepository extends JpaRepository