IMDGMessageResolver removed stack trace

This commit is contained in:
ialbert 2023-05-25 11:50:59 +03:00
parent 45f51a1b27
commit 0597fe9136

View file

@ -1,6 +1,5 @@
package ru.spcex.clearing.util.services;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.clearing.platform.dictionary.ErrorCodeDictionary;
@ -11,6 +10,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.enumeration.IMessageResolver;
import java.util.Arrays;
import java.util.function.Supplier;
/**
* Использует ErrorCodeDictionary для расшифровки текста кодов ошибок.
@ -24,19 +24,20 @@ public class IMDGMessageResolver implements IMessageResolver {
}
@Override
public String resolve(EnumMessage errorMessage) {
if (errorMessage == null) return "null";
public String resolve(EnumMessage errMsg) {
if (errMsg == null) return "null";
Supplier<String> simplFormatter = () -> String.format("(%d) args %s", errMsg.getSubject().getId(), Arrays.toString(errMsg.getArgs()));
try {
ErrorCodeDictionary errorDictionary = errorCodeDictionaryIMDG.getSingleObjectByID(errorMessage.getSubject().getId());
ErrorCodeDictionary errorDictionary = errorCodeDictionaryIMDG.getSingleObjectByID(errMsg.getSubject().getId());
if (errorDictionary == null) {
log.warn("ERROR_CODE_DICTIONARY not found fo id={}", errorMessage.getSubject().getId());
return String.format("(%d) args %s", errorMessage.getSubject().getId(), Arrays.toString(errorMessage.getArgs()));
log.warn("ERROR_CODE_DICTIONARY not found fo id={}", errMsg.getSubject().getId());
return simplFormatter.get();
}
String textTemplate = errorDictionary.getName();
return String.format(textTemplate, errorMessage.getArgs());
return String.format(textTemplate, errMsg.getArgs());
} catch (Exception errFormatting) { // MissingFormatArgumentException
log.warn("Error in message resolver for error {}: {}", errorMessage.getSubject(), ExceptionUtils.getStackTrace(errFormatting));
return String.format("(%d) args %s", errorMessage.getSubject().getId(), Arrays.toString(errorMessage.getArgs()));
log.warn("Error in message resolver for error {} id {}", errMsg.getSubject(), errMsg.getSubject().getId());
return simplFormatter.get();
}
}
}