Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
ialbert 2026-03-16 14:45:01 +03:00
commit a2bb357755
3 changed files with 8 additions and 4 deletions

View file

@ -10,7 +10,7 @@
</parent> </parent>
<groupId>ru.nbch</groupId> <groupId>ru.nbch</groupId>
<artifactId>credit-tracker</artifactId> <artifactId>credit-tracker</artifactId>
<version>2.21.7</version> <version>2.21.9</version>
<name>credit_tracker</name> <name>credit_tracker</name>
<description>Credit Tracker Application</description> <description>Credit Tracker Application</description>

View file

@ -1,5 +1,6 @@
package ru.nbch.credit_tracker.component; package ru.nbch.credit_tracker.component;
import java.util.concurrent.atomic.AtomicBoolean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -65,10 +66,12 @@ public class MonitoringRequestValidator {
public ValidationResult readAndValidateMonitoringRequest(Path filePath) { public ValidationResult readAndValidateMonitoringRequest(Path filePath) {
log.debug("Validating monitoring request..."); log.debug("Validating monitoring request...");
ValidationResult validationResult = new ValidationResult(); ValidationResult validationResult = new ValidationResult();
AtomicBoolean subjectWasMeet = new AtomicBoolean(false);
try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(filePath), 8 * 1024 * 1024)) { try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(filePath), 8 * 1024 * 1024)) {
staxXmlProcessor.read(in, MonitoringRequest.class, staxXmlProcessor.read(in, MonitoringRequest.class,
request -> { request -> {
try { try {
subjectWasMeet.compareAndSet(false, true);
validationService.validateMonitoringRequest(request); validationService.validateMonitoringRequest(request);
} catch (SignalException e) { } catch (SignalException e) {
validationResult.addError(new MonitoringValidationError(-1, "", e)); validationResult.addError(new MonitoringValidationError(-1, "", e));
@ -86,10 +89,11 @@ public class MonitoringRequestValidator {
&& validationResult.getSignalTypes().isEmpty()) { && validationResult.getSignalTypes().isEmpty()) {
validationResult.setSignalTypes(request.getSignalTypes()); validationResult.setSignalTypes(request.getSignalTypes());
} }
request.getSubjects().getSubject().clear();
} }
}, },
request -> request.getSubjects().getSubject().isEmpty(), request -> subjectWasMeet.get() && request.getSubjects().getSubject().isEmpty(),
40000, "/MonitoringRequest/Subjects/Subject"); 9010, "/MonitoringRequest/Subjects/Subject");
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException("Error while parsing and validating monitoring request", e); throw new RuntimeException("Error while parsing and validating monitoring request", e);
} }

View file

@ -69,7 +69,7 @@ public class SignalFacadeV3 {
private final ExecutorService pipelineExecutorService; private final ExecutorService pipelineExecutorService;
private final ExecutorService saverExecutorService; private final ExecutorService saverExecutorService;
private final PipelinePackageOrchestrator pipelineOrchestrator; private final PipelinePackageOrchestrator pipelineOrchestrator;
private final Pattern DOWNLOAD_FILE_PATTERN = Pattern.compile("^(?<member>[A-Za-z0-9]{6})_(?<package>[A-Za-z0-9_]+)_(?<ts>\\d{4}-\\d{2}-\\d{2}T\\d{2}-\\d{2}-\\d{2})(?:\\.xml)?\\.zip$"); private final Pattern DOWNLOAD_FILE_PATTERN = Pattern.compile("^(?<member>[A-Za-z0-9]{6})_(?<package>[A-Za-z0-9_]+)_(?<ts>\\d{4}\\d{2}\\d{2}_\\d{2}\\d{2}\\d{2})(?:\\.xml)?\\.zip$");
public SignalFacadeV3(MonitoringRequestValidator monitoringRequestValidator, public SignalFacadeV3(MonitoringRequestValidator monitoringRequestValidator,
CreditTrackerSettings config, CreditTrackerSettings config,