From 40fc51264ee4920df738dffb1975e9af53cfc9bf Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 19 Feb 2026 15:55:20 +0300 Subject: [PATCH 1/3] http://jira.mfd.msk:8088/browse/BKI-3456 --- src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java index 79e235d..ec12124 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacadeV3.java @@ -69,7 +69,7 @@ public class SignalFacadeV3 { private final ExecutorService pipelineExecutorService; private final ExecutorService saverExecutorService; private final PipelinePackageOrchestrator pipelineOrchestrator; - private final Pattern DOWNLOAD_FILE_PATTERN = Pattern.compile("^(?[A-Za-z0-9]{6})_(?[A-Za-z0-9_]+)_(?\\d{4}-\\d{2}-\\d{2}T\\d{2}-\\d{2}-\\d{2})(?:\\.xml)?\\.zip$"); + private final Pattern DOWNLOAD_FILE_PATTERN = Pattern.compile("^(?[A-Za-z0-9]{6})_(?[A-Za-z0-9_]+)_(?\\d{4}\\d{2}\\d{2}_\\d{2}\\d{2}\\d{2})(?:\\.xml)?\\.zip$"); public SignalFacadeV3(MonitoringRequestValidator monitoringRequestValidator, CreditTrackerSettings config, From 074375987d0b1b7bb0f59264cc8cc073d64a4bd6 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Thu, 19 Feb 2026 16:23:53 +0300 Subject: [PATCH 2/3] http://jira.mfd.msk:8088/browse/BKI-3456 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0452f13..0199b2e 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ ru.nbch credit-tracker - 2.21.7 + 2.21.8 credit_tracker Credit Tracker Application From 6c9e30658b0725112031c35df4e105743f092351 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Tue, 24 Feb 2026 11:48:17 +0300 Subject: [PATCH 3/3] http://jira.mfd.msk:8088/browse/BKI-3458 --- pom.xml | 2 +- .../component/MonitoringRequestValidator.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 0199b2e..fe490bd 100644 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ ru.nbch credit-tracker - 2.21.8 + 2.21.9 credit_tracker Credit Tracker Application diff --git a/src/main/java/ru/nbch/credit_tracker/component/MonitoringRequestValidator.java b/src/main/java/ru/nbch/credit_tracker/component/MonitoringRequestValidator.java index 6ed707d..1a5e038 100644 --- a/src/main/java/ru/nbch/credit_tracker/component/MonitoringRequestValidator.java +++ b/src/main/java/ru/nbch/credit_tracker/component/MonitoringRequestValidator.java @@ -1,5 +1,6 @@ package ru.nbch.credit_tracker.component; +import java.util.concurrent.atomic.AtomicBoolean; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -65,10 +66,12 @@ public class MonitoringRequestValidator { public ValidationResult readAndValidateMonitoringRequest(Path filePath) { log.debug("Validating monitoring request..."); ValidationResult validationResult = new ValidationResult(); + AtomicBoolean subjectWasMeet = new AtomicBoolean(false); try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(filePath), 8 * 1024 * 1024)) { staxXmlProcessor.read(in, MonitoringRequest.class, request -> { try { + subjectWasMeet.compareAndSet(false, true); validationService.validateMonitoringRequest(request); } catch (SignalException e) { validationResult.addError(new MonitoringValidationError(-1, "", e)); @@ -86,10 +89,11 @@ public class MonitoringRequestValidator { && validationResult.getSignalTypes().isEmpty()) { validationResult.setSignalTypes(request.getSignalTypes()); } + request.getSubjects().getSubject().clear(); } }, - request -> request.getSubjects().getSubject().isEmpty(), - 40000, "/MonitoringRequest/Subjects/Subject"); + request -> subjectWasMeet.get() && request.getSubjects().getSubject().isEmpty(), + 9010, "/MonitoringRequest/Subjects/Subject"); } catch (IOException e) { throw new RuntimeException("Error while parsing and validating monitoring request", e); }