diff options
Diffstat (limited to 'restapi-call-node/provider/src/main/java')
2 files changed, 10 insertions, 4 deletions
diff --git a/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/RestapiCallNode.java b/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/RestapiCallNode.java index e5503435b..9a89af6b5 100644 --- a/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/RestapiCallNode.java +++ b/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/RestapiCallNode.java @@ -392,6 +392,7 @@ public class RestapiCallNode implements SvcLogicJavaPlugin { throws SvcLogicException { log.info("Building {} started", format); long t1 = System.currentTimeMillis(); + String originalTemplate = template; template = expandRepeats(ctx, template, 1); @@ -439,7 +440,7 @@ public class RestapiCallNode implements SvcLogicJavaPlugin { } String req = format == Format.XML - ? XmlJsonUtil.removeEmptyStructXml(ss.toString()) : XmlJsonUtil.removeEmptyStructJson(ss.toString()); + ? XmlJsonUtil.removeEmptyStructXml(ss.toString()) : XmlJsonUtil.removeEmptyStructJson(originalTemplate, ss.toString()); if (format == Format.JSON) { req = XmlJsonUtil.removeLastCommaJson(req); diff --git a/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/XmlJsonUtil.java b/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/XmlJsonUtil.java index 8a0ca8d94..4712b4298 100644 --- a/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/XmlJsonUtil.java +++ b/restapi-call-node/provider/src/main/java/org/onap/ccsdk/sli/plugins/restapicall/XmlJsonUtil.java @@ -272,7 +272,7 @@ public final class XmlJsonUtil { return sb.toString(); } - public static String removeEmptyStructJson(String s) { + public static String removeEmptyStructJson(String template, String s) { int k = 0; while (k < s.length()) { boolean curly = true; @@ -304,8 +304,13 @@ public final class XmlJsonUtil { if (i5 < 0) i5 = s.length(); - s = s.substring(0, i4) + s.substring(i5); - k = 0; + /*If template mandates empty construct to be present, those should not be removed.*/ + if ((template != null) && template.contains(s.substring(i4))) { + k = i1 + 1; + } else { + s = s.substring(0, i4) + s.substring(i5); + k = 0; + } } else k = i1 + 1; } else |