summaryrefslogtreecommitdiffstats
path: root/common-app-api/src/main/java/org/openecomp/sdc/exception/AbstractSdncException.java
diff options
context:
space:
mode:
Diffstat (limited to 'common-app-api/src/main/java/org/openecomp/sdc/exception/AbstractSdncException.java')
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/exception/AbstractSdncException.java172
1 files changed, 90 insertions, 82 deletions
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/exception/AbstractSdncException.java b/common-app-api/src/main/java/org/openecomp/sdc/exception/AbstractSdncException.java
index 7fac9f33fa..75315a06cc 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/exception/AbstractSdncException.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/exception/AbstractSdncException.java
@@ -22,6 +22,7 @@ package org.openecomp.sdc.exception;
import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
import org.openecomp.sdc.common.log.wrappers.Logger;
+import org.openecomp.sdc.common.util.GeneralUtility;
import java.util.Arrays;
import java.util.Formatter;
@@ -30,87 +31,94 @@ import java.util.regex.Pattern;
public abstract class AbstractSdncException {
- private String messageId;
-
- private String text;
-
- private String[] variables;
-
- private static Logger log = Logger.getLogger(AbstractSdncException.class.getName());
-
- private static final Pattern ERROR_PARAM_PATTERN = Pattern.compile("%\\d");
-
- public AbstractSdncException() {
- }
-
- public AbstractSdncException(String messageId, String text, String[] variables) {
- super();
- this.messageId = messageId;
- this.text = text;
- this.variables = validateParameters(messageId, text, variables);
- }
-
- private String[] validateParameters(String messageId, String text, String[] variables) {
- String[] res = null;
- Matcher m = ERROR_PARAM_PATTERN.matcher(text);
- int expectedParamsNum = 0;
- while (m.find()) {
- expectedParamsNum += 1;
- }
- int actualParamsNum = (variables != null) ? variables.length : 0;
- if (actualParamsNum < expectedParamsNum) {
- log.warn(EcompLoggerErrorCode.UNKNOWN_ERROR, "", "",
- "Received less parameters than expected for error with messageId {}, expected: {}, actual: {}. Missing parameters are padded with null values.",
- messageId, expectedParamsNum, actualParamsNum);
- } else if (actualParamsNum > expectedParamsNum) {
- log.warn(EcompLoggerErrorCode.UNKNOWN_ERROR, "", "", "",
- "Received more parameters than expected for error with messageId {}, expected: {}, actual: {}. Extra parameters are ignored.",
- messageId, expectedParamsNum, actualParamsNum);
- }
- if (variables != null) {
- res = Arrays.copyOf(variables, expectedParamsNum);
- }
-
- return res;
- }
-
- public String getMessageId() {
- return this.messageId;
- }
-
- public String getText() {
- return text;
- }
-
- public String[] getVariables() {
- return variables;
- }
-
- public void setMessageId(String messageId) {
- this.messageId = messageId;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public void setVariables(String[] variables) {
- this.variables = variables;
- }
-
- public String getFormattedErrorMessage() {
- String res;
- if (variables != null && variables.length > 0) {
- Formatter formatter = new Formatter();
- try {
- res = formatter.format(this.text.replaceAll("%\\d", "%s"), (Object[]) this.variables).toString();
- } finally {
- formatter.close();
- }
- } else {
- res = this.text;
- }
- return res;
- }
+ private String messageId;
+
+ private String text;
+
+ private final String ecompRequestId;
+
+ private String[] variables;
+
+ private static Logger log = Logger.getLogger(AbstractSdncException.class.getName());
+
+ private final static Pattern ERROR_PARAM_PATTERN = Pattern.compile("%\\d");
+
+ public AbstractSdncException() {
+ this.ecompRequestId = GeneralUtility.getEcompRequestId();
+ }
+
+ public AbstractSdncException(String messageId, String text, String[] variables) {
+ this();
+ this.messageId = messageId;
+ this.text = text;
+ this.variables = validateParameters(messageId, text, variables);
+ }
+
+ private String[] validateParameters(String messageId, String text, String[] variables) {
+ String[] res = null;
+ Matcher m = ERROR_PARAM_PATTERN.matcher(text);
+ int expectedParamsNum = 0;
+ while (m.find()) {
+ expectedParamsNum += 1;
+ }
+ int actualParamsNum = (variables != null) ? variables.length : 0;
+ if (actualParamsNum < expectedParamsNum) {
+ log.warn(EcompLoggerErrorCode.UNKNOWN_ERROR,"","",
+ "Received less parameters than expected for error with messageId {}, expected: {}, actual: {}. Missing parameters are padded with null values.",
+ messageId, expectedParamsNum, actualParamsNum);
+ } else if (actualParamsNum > expectedParamsNum) {
+ log.warn(EcompLoggerErrorCode.UNKNOWN_ERROR,"","","",
+ "Received more parameters than expected for error with messageId {}, expected: {}, actual: {}. Extra parameters are ignored.",
+ messageId, expectedParamsNum, actualParamsNum);
+ }
+ if (variables != null) {
+ res = Arrays.copyOf(variables, expectedParamsNum);
+ }
+
+ return res;
+ }
+
+ public String getMessageId() {
+ return messageId;
+ }
+
+ public String getText() {
+ return text;
+ }
+
+ public String getEcompRequestId() {
+ return ecompRequestId;
+ }
+
+ public String[] getVariables() {
+ return variables;
+ }
+
+ public void setMessageId(String messageId) {
+ this.messageId = messageId;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public void setVariables(String[] variables) {
+ this.variables = variables;
+ }
+
+ public String getFormattedErrorMessage() {
+ String res;
+ if (variables != null && variables.length > 0) {
+ Formatter formatter = new Formatter();
+ try {
+ res = formatter.format(this.text.replaceAll("%\\d", "%s"), (Object[]) this.variables).toString();
+ } finally {
+ formatter.close();
+ }
+ } else {
+ res = this.text;
+ }
+ return res;
+ }
}