diff options
Diffstat (limited to 'cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java')
-rwxr-xr-x | cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java b/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java index cd14795ad..51e31f08c 100755 --- a/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java +++ b/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java @@ -160,9 +160,15 @@ public class CpsDataServiceImpl implements CpsDataService { final String jsonData, final OffsetDateTime observedTimestamp) { cpsValidator.validateNameCharacters(dataspaceName, anchorName); final Anchor anchor = cpsAdminService.getAnchor(dataspaceName, anchorName); - final DataNode dataNode = buildDataNode(anchor, parentNodeXpath, jsonData, ContentType.JSON); - cpsDataPersistenceService.updateDataLeaves(dataspaceName, anchorName, dataNode.getXpath(), - dataNode.getLeaves()); + final Collection<DataNode> dataNodesInPatch = buildDataNodes(anchor, parentNodeXpath, jsonData, + ContentType.JSON); + if (dataNodesInPatch.size() > 1) { + throw new DataValidationException("Operation is not supported for multiple data nodes", + "Number of data nodes present: " + dataNodesInPatch.size()); + } + cpsDataPersistenceService.updateDataLeaves(dataspaceName, anchorName, + dataNodesInPatch.iterator().next().getXpath(), + dataNodesInPatch.iterator().next().getLeaves()); processDataUpdatedEventAsync(anchor, parentNodeXpath, UPDATE, observedTimestamp); } |