diff options
author | niamhcore <niamh.core@est.tech> | 2021-06-17 15:27:55 +0100 |
---|---|---|
committer | niamhcore <niamh.core@est.tech> | 2021-06-18 15:14:12 +0100 |
commit | 657a97124f0890f6bb5fec61a37978a6aa00a29d (patch) | |
tree | 2f41da96c24b071f6eef816c37c5f2305d38e8f9 /cps-service/src/main | |
parent | c6865f33336bcdcd79eb2659b1a7df130aee9452 (diff) |
Updating exception and explanation for update node leaves
Issue-ID: CPS-464 & CPS-465
Signed-off-by: niamhcore <niamh.core@est.tech>
Change-Id: I1880ceee66d89c49d039011163fa74bb7da19f25
Diffstat (limited to 'cps-service/src/main')
-rw-r--r-- | cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java | 5 | ||||
-rw-r--r-- | cps-service/src/main/java/org/onap/cps/utils/YangUtils.java | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java b/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java index 762e61ac59..4a9957deb4 100644 --- a/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java +++ b/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; +import org.onap.cps.spi.exceptions.DataValidationException; import org.onap.cps.utils.YangUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; @@ -142,6 +143,10 @@ public class DataNodeBuilder { private DataNode buildFromNormalizedNodeTree() { final Collection<DataNode> dataNodeCollection = buildCollectionFromNormalizedNodeTree(); + if (!dataNodeCollection.iterator().hasNext()) { + throw new DataValidationException( + "Unsupported xpath: ", "Unsupported xpath as it is referring to one element"); + } return dataNodeCollection.iterator().next(); } diff --git a/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java b/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java index 0b66d37fba..b5c14a0721 100644 --- a/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java +++ b/cps-service/src/main/java/org/onap/cps/utils/YangUtils.java @@ -94,9 +94,13 @@ public class YangUtils { final var jsonReader = new JsonReader(new StringReader(jsonData)); jsonParserStream.parse(jsonReader); - } catch (final IOException | IllegalStateException | JsonSyntaxException exception) { + } catch (final IOException | JsonSyntaxException exception) { throw new DataValidationException( - "Failed to parse json data: " + jsonData, exception.getMessage(), exception); + "Failed to parse json data: " + jsonData, exception.getMessage(), exception); + } catch (final IllegalStateException illegalStateException) { + throw new DataValidationException( + "Failed to parse json data. Unsupported xpath or json data:" + jsonData, illegalStateException + .getMessage(), illegalStateException); } return normalizedNodeResult.getResult(); } |