X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fnetconf-netty-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fnettyutil%2Fhandler%2FNetconfXMLToMessageDecoder.java;h=ee8f1ad5b762cb33003d7044f6882585277571b2;hb=8a9e0e30fb1d0cd1454af969c2bd23310a5b0248;hp=68dba39d63bccae8f2e18280116e722e317d9258;hpb=00f943c0bc1b0de523ddb9fb636c1d76e8f52eaf;p=netconf.git diff --git a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java index 68dba39d63..ee8f1ad5b7 100644 --- a/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java +++ b/netconf/netconf-netty-util/src/main/java/org/opendaylight/netconf/nettyutil/handler/NetconfXMLToMessageDecoder.java @@ -15,11 +15,13 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; import java.io.IOException; import java.util.List; -import org.opendaylight.controller.config.util.xml.XmlUtil; +import org.opendaylight.netconf.api.FailedNetconfMessage; import org.opendaylight.netconf.api.NetconfMessage; +import org.opendaylight.netconf.api.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; +import org.xml.sax.SAXParseException; public final class NetconfXMLToMessageDecoder extends ByteToMessageDecoder { private static final Logger LOG = LoggerFactory.getLogger(NetconfXMLToMessageDecoder.class); @@ -68,7 +70,16 @@ public final class NetconfXMLToMessageDecoder extends ByteToMessageDecoder { } } if (in.isReadable()) { - out.add(new NetconfMessage(XmlUtil.readXmlToDocument(new ByteBufInputStream(in)))); + NetconfMessage msg; + + try { + msg = new NetconfMessage(XmlUtil.readXmlToDocument(new ByteBufInputStream(in))); + } catch (SAXParseException exception) { + LOG.error("Failed to parse received message", exception); + msg = new FailedNetconfMessage(exception); + } + + out.add(msg); } else { LOG.debug("No more content in incoming buffer."); }