Flush element when streaming NormalizedAnydata 47/82447/2
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 7 Jun 2019 13:39:08 +0000 (15:39 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 7 Jun 2019 14:07:10 +0000 (16:07 +0200)
We must make sure parent StreamWriterFacade emits any started
open elements to the writer, otherwise can end up with weird
XML, which suddenly emits a self-closing element.

Issue a flushElement() before writing the data.

JIRA: YANGTOOLS-1002
Change-Id: Ib3933ddad22e490782a144306b8df10a033d74ee
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/StreamWriterFacade.java

index 1e126ae26409637abab6101c749a015b58d03e72..c1fc8b5e7e0b5b556e60c747fc517868a3e178b5 100644 (file)
@@ -282,6 +282,7 @@ final class StreamWriterFacade extends ValueWriter {
     }
 
     void emitNormalizedAnydata(final NormalizedAnydata anydata) throws XMLStreamException {
+        flushElement();
         try {
             anydata.writeTo(XMLStreamNormalizedNodeStreamWriter.create(writer, anydata.getSchemaContext(),
                 new SingleChildDataNodeContainer(anydata.getContextNode())));