diff options
author | Eylon Malin <eylon.malin@intl.att.com> | 2020-01-16 07:26:55 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2020-01-16 07:26:55 +0000 |
commit | adef7f90d338e0e93e3a3d0a6f714f0270a9b7f1 (patch) | |
tree | 3e90c68be8b4f8b3c2d48c8b351ec37ca46d275f /vid-app-common/src/main | |
parent | b2051451afacc4ab025f6ce10bb5b8e0191e9e1f (diff) | |
parent | a46f5b6345622acd863ea41b61b607b847732151 (diff) |
Merge "Async MSO error format: handle more cases"
Diffstat (limited to 'vid-app-common/src/main')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/mso/MsoUtil.java | 45 |
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("[\\{\\}]", ""); } } |