From 51ccc270908f5f452cc2b4570b59e4adb7cc384f Mon Sep 17 00:00:00 2001 From: AKurakin Date: Fri, 18 Aug 2023 13:51:21 +0300 Subject: [PATCH] =?UTF-8?q?backend-api=20fix=20NullPointerException=20?= =?UTF-8?q?=D0=B2=20RequestInfoAccepter=20(=D1=82=D0=B5=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D1=8C=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20warn)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backendapi/service/RequestInfoAccepter.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java index 698d281a6..b5a795465 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/service/RequestInfoAccepter.java @@ -14,6 +14,10 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +/** + * Сервис для сигнализирования результатов запросов клиентов. Ассинхронное обновление статуса. + * Клиент запрашивает периодически (или по событию) таблицу Map_RequestInfo и видит результат выполнения запросов. + */ @Service public class RequestInfoAccepter extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -37,9 +41,15 @@ public class RequestInfoAccepter extends QueueConsumer implements InitializingBe private void updateRequestInfo(BaseRequest requestInfoUpdateBaseRequest) { //will throw exception for any class other than RequestInfoUpdate RequestInfoUpdate statusInfo = requestInfoUpdateBaseRequest.getRequestPayload(); + if (statusInfo == null || statusInfo.getId() == null) { + log.warn("BaseRequest id={}, RequestPayload={}: requestInfo id was null", + requestInfoUpdateBaseRequest.getId(), statusInfo); + return; + } RequestInfo requestInfo = requestInfoImdg.getSingleObjectByID(statusInfo.getId()); if (requestInfo == null) { - log.warn("unknown requestInfo id={}", statusInfo.getId()); + log.warn("unknown requestInfo id={}; statusInfo: {}", + statusInfo.getId(), statusInfo); return; } requestInfo.setStatus(statusInfo.getStatus());