From 6571e4d90fe8589fadae948e268f2ff1588c634e Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Wed, 1 Oct 2025 15:50:46 +0300 Subject: [PATCH] http://jira.mfd.msk:8088/browse/BKI-3215 Added packageName to SignalClientException for logging it on error --- .../config/rest/GlobalExceptionHandler.java | 7 ++++++- .../exceptions/SignalClientException.java | 5 ++++- .../nbch/credit_tracker/facade/SignalFacade.java | 4 ++-- .../credit_tracker/utils/ValidationService.java | 16 +++++++++------- .../utils/error/ExceptionUtils.java | 6 +++++- 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java b/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java index b0824b1..edbbabb 100644 --- a/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java +++ b/src/main/java/ru/nbch/credit_tracker/config/rest/GlobalExceptionHandler.java @@ -55,7 +55,12 @@ public class GlobalExceptionHandler { commonError.setErrorText(errorText); if (ex instanceof SignalClientException) { - log.warn("Response error: {}", errorText); + String packageName = ((SignalClientException) ex).getPackageName(); + if(packageName != null ) { + log.warn("Response error: {}. PackageName: {}", errorText, packageName); + } else { + log.warn("Response error: {}", errorText); + } return new ResponseEntity<>(commonError, headers, HttpStatus.BAD_REQUEST); } else { Exception cause = ((SignalServerException) ex).getCause(); diff --git a/src/main/java/ru/nbch/credit_tracker/exceptions/SignalClientException.java b/src/main/java/ru/nbch/credit_tracker/exceptions/SignalClientException.java index ebf18f4..5db06c0 100644 --- a/src/main/java/ru/nbch/credit_tracker/exceptions/SignalClientException.java +++ b/src/main/java/ru/nbch/credit_tracker/exceptions/SignalClientException.java @@ -7,7 +7,10 @@ import ru.nbch.credit_tracker.enums.XmlErrorFormat; @Getter public class SignalClientException extends SignalException { - public SignalClientException(EnumKeyMessage errorMessage, XmlErrorFormat errorFormat) { + private final String packageName; + + public SignalClientException(EnumKeyMessage errorMessage, XmlErrorFormat errorFormat, String packageName) { super(errorMessage, errorFormat); + this.packageName = packageName; } } diff --git a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java index 81a1802..e904779 100644 --- a/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java +++ b/src/main/java/ru/nbch/credit_tracker/facade/SignalFacade.java @@ -156,13 +156,13 @@ public class SignalFacade { AuthorizationService.AuthResult authResult = authorizationService.findAuthInfo(monitoringRequest.getUserId(), monitoringRequest.getPassword()); if (!authResult.isSuccess()) { signalService.rejectPackage(monitoringRequest); - throw clientExcp(authResult.getError(), XmlErrorFormat.MonitoringError); + throw clientExcp(authResult.getError(), monitoringRequest.getPackageName(), XmlErrorFormat.MonitoringError); } // проверка на уникальность пакета if (signalService.isPackageNotUnique(monitoringRequest)) { signalService.rejectPackage(monitoringRequest); - throw clientExcp(SignalError.ERROR_007, XmlErrorFormat.MonitoringError); + throw clientExcp(SignalError.ERROR_007, monitoringRequest.getPackageName(), XmlErrorFormat.MonitoringError); } packageId = signalService.registerPackage(monitoringRequest); diff --git a/src/main/java/ru/nbch/credit_tracker/utils/ValidationService.java b/src/main/java/ru/nbch/credit_tracker/utils/ValidationService.java index 6273d7c..9e7875d 100644 --- a/src/main/java/ru/nbch/credit_tracker/utils/ValidationService.java +++ b/src/main/java/ru/nbch/credit_tracker/utils/ValidationService.java @@ -31,32 +31,34 @@ public class ValidationService { throw clientExcp(SignalError.ERROR_002, XmlErrorFormat.MonitoringError, "PackageName"); } + String packageName = request.getPackageName(); + if (!validatePackageName(request.getPackageName())) { - throw clientExcp(SignalError.ERROR_008, XmlErrorFormat.MonitoringError); + throw clientExcp(SignalError.ERROR_008, packageName, XmlErrorFormat.MonitoringError); } if (request.getUserId() == null) { - throw clientExcp(SignalError.ERROR_002, XmlErrorFormat.MonitoringError, "UserId"); + throw clientExcp(SignalError.ERROR_002, packageName, XmlErrorFormat.MonitoringError, "UserId"); } if (request.getPassword() == null) { - throw clientExcp(SignalError.ERROR_002, XmlErrorFormat.MonitoringError, "Password"); + throw clientExcp(SignalError.ERROR_002, packageName, XmlErrorFormat.MonitoringError, "Password"); } if (request.getSubjects() == null) { - throw clientExcp(SignalError.ERROR_002, XmlErrorFormat.MonitoringError, "Subjects"); + throw clientExcp(SignalError.ERROR_002, packageName, XmlErrorFormat.MonitoringError, "Subjects"); } if (request.getSubjects().getSubject().isEmpty()) { - throw clientExcp(SignalError.ERROR_002, XmlErrorFormat.MonitoringError, "Subject"); + throw clientExcp(SignalError.ERROR_002, packageName, XmlErrorFormat.MonitoringError, "Subject"); } for (Subject subject : request.getSubjects().getSubject()) { if (!validateNPId(subject.getId())) { - throw clientExcp(SignalError.ERROR_010, XmlErrorFormat.MonitoringError, subject.getId()); + throw clientExcp(SignalError.ERROR_010, packageName, XmlErrorFormat.MonitoringError, subject.getId()); } if (!validatePhone(subject.getClientId())) { - throw clientExcp(SignalError.ERROR_003, XmlErrorFormat.MonitoringError, subject.getId()); + throw clientExcp(SignalError.ERROR_003, packageName, XmlErrorFormat.MonitoringError, subject.getId()); } } } diff --git a/src/main/java/ru/nbch/credit_tracker/utils/error/ExceptionUtils.java b/src/main/java/ru/nbch/credit_tracker/utils/error/ExceptionUtils.java index 2e94e78..af7969e 100644 --- a/src/main/java/ru/nbch/credit_tracker/utils/error/ExceptionUtils.java +++ b/src/main/java/ru/nbch/credit_tracker/utils/error/ExceptionUtils.java @@ -9,7 +9,11 @@ import ru.nbch.credit_tracker.exceptions.SignalServerException; public class ExceptionUtils { public static SignalClientException clientExcp(IEnumKeyCode enumKeyCode, XmlErrorFormat xmlErrorFormat, Object... args) { - return new SignalClientException(new EnumKeyMessage(enumKeyCode, args), xmlErrorFormat); + return clientExcp(enumKeyCode, null, xmlErrorFormat, args); + } + + public static SignalClientException clientExcp(IEnumKeyCode enumKeyCode, String packageName, XmlErrorFormat xmlErrorFormat, Object... args) { + return new SignalClientException(new EnumKeyMessage(enumKeyCode, args), xmlErrorFormat, packageName); } public static SignalServerException serverExcp(IEnumKeyCode enumKeyCode, XmlErrorFormat xmlErrorFormat, Exception cause, Object... args) {