etreschenkov 2026-02-24 11:48:17 +03:00
parent 074375987d
commit 6c9e30658b
2 changed files with 7 additions and 3 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.8</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);
} }