From a90bcd956de2f040480c8349548397596094e50d Mon Sep 17 00:00:00 2001 From: "Smokowski, Kevin (ks6305)" Date: Tue, 12 Jun 2018 15:51:30 +0000 Subject: Reset root array length when using setnode Reset root array length when using setnode shortcut to support backwards compatibility Change-Id: I0a51e396a9c75a632759cefd82ef4c6c6ca3a384 Issue-ID: CCSDK-302 Signed-off-by: Smokowski, Kevin (ks6305) --- .../java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java | 5 +++++ .../org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutorTest.java | 5 +++++ sli/provider/src/test/resources/clearArrayValues.xml | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java index 758f2039..5019b568 100644 --- a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java +++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutor.java @@ -131,6 +131,11 @@ public class SetNodeExecutor extends SvcLogicNodeExecutor { // If RHS is empty, unset attributes in LHS LinkedList parmsToRemove = new LinkedList(); String prefix = lhsVarName + "."; + //Clear length value in case an array exists with this prefix + String lengthParamName = lhsVarName + "_length"; + parmsToRemove.add(lengthParamName); + LOG.debug("Unsetting " + lengthParamName + " because prefix " + prefix + " is being cleared."); + for (String curCtxVarname : ctx.getAttributeKeySet()) { String curCtxVarnameMatchingValue = curCtxVarname; //Special handling for reseting array values, strips out brackets and any numbers between the brackets diff --git a/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutorTest.java b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutorTest.java index c400bf5d..9ba2c05e 100644 --- a/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutorTest.java +++ b/sli/provider/src/test/java/org/onap/ccsdk/sli/core/sli/provider/SetNodeExecutorTest.java @@ -48,6 +48,11 @@ public class SetNodeExecutorTest { assertNull(ctx.getAttribute("si[0].field1")); assertNull(ctx.getAttribute("si[1].field2")); assertNull(ctx.getAttribute("si[2].field3")); + assertNull(ctx.getAttribute("si_length")); + assertNull(ctx.getAttribute("si[0].subarray[0]")); + assertNull(ctx.getAttribute("si[0].subarray[1]")); + assertNull(ctx.getAttribute("si[0].subarray[2]")); + assertNull(ctx.getAttribute("si[0].subarray_length")); assertEquals("6", ctx.getAttribute("search1")); assertEquals("KeepMe!", ctx.getAttribute("simonSays")); } diff --git a/sli/provider/src/test/resources/clearArrayValues.xml b/sli/provider/src/test/resources/clearArrayValues.xml index 629322d6..8f40058f 100644 --- a/sli/provider/src/test/resources/clearArrayValues.xml +++ b/sli/provider/src/test/resources/clearArrayValues.xml @@ -7,6 +7,11 @@ + + + + + -- cgit 1.2.3-korg