From cedf67270d96f385d0c2154582c6ada267b0c005 Mon Sep 17 00:00:00 2001 From: Atul Gosain Date: Tue, 28 Nov 2017 18:07:08 -0800 Subject: [PATCH] Handling empty text nodes This is a fix for an issue seen in the patch 63984 on yangtools. It handles text nodes which are empty. Change-Id: I6cf1096c511758154df6121d26bf36184385403f Signed-off-by: Atul Gosain --- .../yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java | 5 ++++- .../src/test/resources/bug8927/json/expected.json | 2 +- .../src/test/resources/bug8927/xml/input.xml | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java index c8be2cbdb6..23aa8565c4 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java @@ -312,7 +312,10 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt } private void writeXmlValue(final Node node) throws IOException { - final String childNodeText = getFirstChildText(node).getWholeText().trim(); + Text firstChild = getFirstChildText(node); + String childNodeText = firstChild != null ? firstChild.getWholeText() : ""; + childNodeText = childNodeText != null ? childNodeText.trim() : ""; + if (NUMBER_PATTERN.matcher(childNodeText).matches()) { writer.value(parseNumber(childNodeText)); return; diff --git a/yang/yang-data-codec-gson/src/test/resources/bug8927/json/expected.json b/yang/yang-data-codec-gson/src/test/resources/bug8927/json/expected.json index 396f2bebf7..9496672420 100644 --- a/yang/yang-data-codec-gson/src/test/resources/bug8927/json/expected.json +++ b/yang/yang-data-codec-gson/src/test/resources/bug8927/json/expected.json @@ -2,7 +2,7 @@ "bug8927:foo": { "alarm-information": { "alarm-summary": { - "active-alarm-count": 16 + "active-alarm-count": "" }, "alarm-detail": { "alarm-time": "2017-08-02 19:03:44 UTC", diff --git a/yang/yang-data-codec-gson/src/test/resources/bug8927/xml/input.xml b/yang/yang-data-codec-gson/src/test/resources/bug8927/xml/input.xml index 24f01e1ee1..2d17641f96 100644 --- a/yang/yang-data-codec-gson/src/test/resources/bug8927/xml/input.xml +++ b/yang/yang-data-codec-gson/src/test/resources/bug8927/xml/input.xml @@ -3,7 +3,7 @@ - 16 + -- 2.36.6