aboutsummaryrefslogtreecommitdiffstats
path: root/cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'cps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java')
-rwxr-xr-xcps-service/src/main/java/org/onap/cps/api/impl/CpsDataServiceImpl.java12
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);
}