CPS-566: Can't access grandparent node through ancestor axis 81/123281/1
authorshivasubedi <shiva.subedi@est.tech>
Mon, 16 Aug 2021 12:31:33 +0000 (13:31 +0100)
committershivasubedi <shiva.subedi@est.tech>
Mon, 16 Aug 2021 12:46:16 +0000 (13:46 +0100)
Reason for this change is listed in the jira.

Issue-ID: CPS-566
Signed-off-by: shivasubedi <shiva.subedi@est.tech>
Change-Id: I25315791cd0b8f5c1124578ab486afbdb3ba4c47

cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java

index fdbafd4..20b51c8 100644 (file)
@@ -81,7 +81,7 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService
     }
 
     private static final Gson GSON = new GsonBuilder().create();
-    private static final String REG_EX_FOR_OPTIONAL_LIST_INDEX = "(\\[@\\S+?]){0,1})";
+    private static final String REG_EX_FOR_OPTIONAL_LIST_INDEX = "(\\[@[\\s\\S]+?]){0,1})";
 
     @Override
     public void addChildDataNode(final String dataspaceName, final String anchorName, final String parentXpath,
@@ -208,8 +208,8 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService
         final CpsPathQuery cpsPathQuery) {
         final Set<String> ancestorXpath = new HashSet<>();
         final var pattern =
-            Pattern.compile("(\\S*\\/" + Pattern.quote(cpsPathQuery.getAncestorSchemaNodeIdentifier())
-                + REG_EX_FOR_OPTIONAL_LIST_INDEX + "\\/\\S*");
+            Pattern.compile("([\\s\\S]*\\/" + Pattern.quote(cpsPathQuery.getAncestorSchemaNodeIdentifier())
+                + REG_EX_FOR_OPTIONAL_LIST_INDEX + "\\/[\\s\\S]*");
         for (final FragmentEntity fragmentEntity : fragmentEntities) {
             final var matcher = pattern.matcher(fragmentEntity.getXpath());
             if (matcher.matches()) {