aboutsummaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java
diff options
context:
space:
mode:
authorIttay Stern <ittay.stern@att.com>2020-01-15 19:52:33 +0200
committerIttay Stern <ittay.stern@att.com>2020-01-15 19:52:33 +0200
commita46f5b6345622acd863ea41b61b607b847732151 (patch)
tree6f80e517c1ee2d7bc39f9a68a8aeb81381631dea /vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java
parent9dab9fa0a02e19123149e2fe661ec61cac955120 (diff)
Async MSO error format: handle more cases
Try better not to fallback to "Http Code:400, null" Notably, handle the case where "serviceException" is inside a "requestError" container. Issue-ID: VID-749 Change-Id: I3c7d609aed893bbbeb71ebe4b465289c71e5c32b Signed-off-by: Ittay Stern <ittay.stern@att.com>
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java45
1 files changed, 27 insertions, 18 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java b/vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java
index 626816f7f..8de534a8e 100644
--- a/vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java
+++ b/vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java
@@ -21,15 +21,15 @@
package org.onap.vid.mso;
+import static org.apache.commons.lang3.StringUtils.firstNonBlank;
+import static org.apache.commons.lang3.StringUtils.isEmpty;
import static org.onap.vid.utils.KotlinUtilsKt.JACKSON_OBJECT_MAPPER;
-import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
import io.joshworks.restclient.http.HttpResponse;
import java.io.IOException;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.onap.vid.exceptions.GenericUncheckedException;
public class MsoUtil {
@@ -76,22 +76,31 @@ public class MsoUtil {
}
public static String formatExceptionAdditionalInfo(int statusCode, String msoResponse) {
- String errorMsg = "Http Code:" + statusCode;
- if (!StringUtils.isEmpty(msoResponse)) {
- String filteredJson;
- try {
- filteredJson = StringUtils.defaultIfEmpty(
- JACKSON_OBJECT_MAPPER.readTree(msoResponse).path("serviceException").toString().replaceAll("[\\{\\}]","") ,
- msoResponse
- );
- } catch (JsonParseException e) {
- filteredJson = msoResponse;
- } catch (IOException e) {
- throw new GenericUncheckedException(e);
- }
+ final String errorMsg = "Http Code:" + statusCode;
+
+ if (isEmpty(msoResponse)) {
+ return errorMsg;
+ }
+
+ try {
+ JsonNode jsonNode = JACKSON_OBJECT_MAPPER.readTree(msoResponse);
- errorMsg = errorMsg + ", " + filteredJson;
+ return errorMsg + ", " + firstNonBlank(
+ removeBraces(jsonNode.get("serviceException")),
+ removeBraces(jsonNode.path("requestError").get("serviceException")),
+ msoResponse
+ );
+
+ } catch (Exception e) {
+ return errorMsg + ", " + msoResponse;
}
- return errorMsg;
+ }
+
+ private static String removeBraces(JsonNode jsonNode) {
+ if (jsonNode == null || jsonNode.isMissingNode()) {
+ return null;
+ }
+
+ return jsonNode.toString().replaceAll("[\\{\\}]", "");
}
}