diff --git a/ocr-service-v1/ocr-service-api-v1/pom.xml b/ocr-service-v1/ocr-service-api-v1/pom.xml index 51c0c7b..a916c88 100644 --- a/ocr-service-v1/ocr-service-api-v1/pom.xml +++ b/ocr-service-v1/ocr-service-api-v1/pom.xml @@ -13,7 +13,7 @@ ocr-service-api-v1 - 2.59.0 + 2.70.0 diff --git a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/configuration/MessagingConfiguration.java b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/configuration/MessagingConfiguration.java index 8f6d0ee..fcf770c 100644 --- a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/configuration/MessagingConfiguration.java +++ b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/configuration/MessagingConfiguration.java @@ -21,6 +21,7 @@ public class MessagingConfiguration { public static final String OCR_STATUS_UPDATE_RESPONSE_QUEUE = "ocr_status_update_response_queue"; public static final String X_ERROR_INFO_HEADER = "x-error-message"; + public static final String X_ERROR_INFO_TIMESTAMP_HEADER = "x-error-message-timestamp"; @Bean diff --git a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java index abb83b8..d7f1f59 100644 --- a/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java +++ b/ocr-service-v1/ocr-service-server-v1/src/main/java/com/iqser/red/service/ocr/v1/server/service/OcrMessageReceiver.java @@ -1,6 +1,7 @@ package com.iqser.red.service.ocr.v1.server.service; import static com.iqser.red.service.ocr.v1.server.configuration.MessagingConfiguration.X_ERROR_INFO_HEADER; +import static com.iqser.red.service.ocr.v1.server.configuration.MessagingConfiguration.X_ERROR_INFO_TIMESTAMP_HEADER; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -23,6 +24,8 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.time.OffsetDateTime; +import java.time.temporal.ChronoUnit; @Slf4j @Service @@ -64,8 +67,9 @@ public class OcrMessageReceiver { fileStatusProcessingUpdateClient.ocrSuccessful(ocrRequestMessage.getDossierId(), ocrRequestMessage.getFileId()); } catch (Exception e) { - log.warn("An exception occurred in ocr file stage: ", e.getMessage() ); + log.warn("An exception occurred in ocr file stage: {}", e.getMessage() ); in.getMessageProperties().getHeaders().put(X_ERROR_INFO_HEADER, e.getMessage()); + in.getMessageProperties().getHeaders().put(X_ERROR_INFO_TIMESTAMP_HEADER, OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS)); throw e; } } @@ -78,7 +82,9 @@ public class OcrMessageReceiver { DocumentRequest ocrRequestMessage = objectMapper.readValue(new String(failedMessage.getBody(), StandardCharsets.UTF_8), DocumentRequest.class); log.info("OCR DQL received: {}", ocrRequestMessage); String errorMessage = failedMessage.getMessageProperties().getHeader(X_ERROR_INFO_HEADER); - fileStatusProcessingUpdateClient.ocrFailed(ocrRequestMessage.getDossierId(), ocrRequestMessage.getFileId(), new FileErrorInfo(errorMessage, MessagingConfiguration.OCR_DLQ, "ocr-service")); + OffsetDateTime timestamp = failedMessage.getMessageProperties().getHeader(X_ERROR_INFO_TIMESTAMP_HEADER); + timestamp = timestamp != null ? timestamp : OffsetDateTime.now().truncatedTo(ChronoUnit.MILLIS); + fileStatusProcessingUpdateClient.ocrFailed(ocrRequestMessage.getDossierId(), ocrRequestMessage.getFileId(), new FileErrorInfo(errorMessage, MessagingConfiguration.OCR_DLQ, "ocr-service", timestamp)); }