X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Futil%2Fmessages%2FSendErrorExceptionUtil.java;h=a187d546514a3bfb2e5abba9af1776ddcacde0c5;hb=refs%2Fchanges%2F13%2F23413%2F26;hp=6604834fe42c02b3b3188fd7cd7f85c7b887ff3d;hpb=51e91f6bdcc88c5aa96f956e516d31dbb5e5d5e0;p=controller.git diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/SendErrorExceptionUtil.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/SendErrorExceptionUtil.java index 6604834fe4..a187d54651 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/SendErrorExceptionUtil.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/SendErrorExceptionUtil.java @@ -9,16 +9,15 @@ package org.opendaylight.controller.netconf.util.messages; import com.google.common.base.Preconditions; - import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; - -import org.opendaylight.controller.netconf.api.NetconfSession; -import org.opendaylight.controller.netconf.api.NetconfDocumentedException; +import org.opendaylight.controller.config.util.xml.DocumentedException; +import org.opendaylight.controller.config.util.xml.XmlMappingConstants; +import org.opendaylight.controller.config.util.xml.XmlUtil; import org.opendaylight.controller.netconf.api.NetconfMessage; +import org.opendaylight.controller.netconf.api.NetconfSession; import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; -import org.opendaylight.controller.netconf.util.xml.XmlUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.w3c.dom.Attr; @@ -27,44 +26,47 @@ import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; public final class SendErrorExceptionUtil { - private static final Logger logger = LoggerFactory.getLogger(SendErrorExceptionUtil.class); + private static final Logger LOG = LoggerFactory.getLogger(SendErrorExceptionUtil.class); private SendErrorExceptionUtil() {} public static void sendErrorMessage(final NetconfSession session, - final NetconfDocumentedException sendErrorException) { - logger.trace("Sending error {}", sendErrorException.getMessage(), sendErrorException); + final DocumentedException sendErrorException) { + LOG.trace("Sending error {}", sendErrorException.getMessage(), sendErrorException); final Document errorDocument = createDocument(sendErrorException); ChannelFuture f = session.sendMessage(new NetconfMessage(errorDocument)); f.addListener(new SendErrorVerifyingListener(sendErrorException)); } - public static void sendErrorMessage(Channel channel, NetconfDocumentedException sendErrorException) { - logger.trace("Sending error {}", sendErrorException.getMessage(), sendErrorException); + public static void sendErrorMessage(final Channel channel, final DocumentedException sendErrorException) { + LOG.trace("Sending error {}", sendErrorException.getMessage(), sendErrorException); final Document errorDocument = createDocument(sendErrorException); ChannelFuture f = channel.writeAndFlush(new NetconfMessage(errorDocument)); f.addListener(new SendErrorVerifyingListener(sendErrorException)); } - public static void sendErrorMessage(NetconfSession session, NetconfDocumentedException sendErrorException, - NetconfMessage incommingMessage) { + public static void sendErrorMessage(final NetconfSession session, final DocumentedException sendErrorException, + final NetconfMessage incommingMessage) { final Document errorDocument = createDocument(sendErrorException); - logger.trace("Sending error {}", XmlUtil.toString(errorDocument)); + if (LOG.isTraceEnabled()) { + LOG.trace("Sending error {}", XmlUtil.toString(errorDocument)); + } + tryToCopyAttributes(incommingMessage.getDocument(), errorDocument, sendErrorException); ChannelFuture f = session.sendMessage(new NetconfMessage(errorDocument)); f.addListener(new SendErrorVerifyingListener(sendErrorException)); } private static void tryToCopyAttributes(final Document incommingDocument, final Document errorDocument, - final NetconfDocumentedException sendErrorException) { + final DocumentedException sendErrorException) { try { final Element incommingRpc = incommingDocument.getDocumentElement(); Preconditions.checkState(incommingRpc.getTagName().equals(XmlNetconfConstants.RPC_KEY), "Missing %s element", XmlNetconfConstants.RPC_KEY); final Element rpcReply = errorDocument.getDocumentElement(); - Preconditions.checkState(rpcReply.getTagName().equals(XmlNetconfConstants.RPC_REPLY_KEY), "Missing %s element", - XmlNetconfConstants.RPC_REPLY_KEY); + Preconditions.checkState(rpcReply.getTagName().equals(XmlMappingConstants.RPC_REPLY_KEY), "Missing %s element", + XmlMappingConstants.RPC_REPLY_KEY); final NamedNodeMap incomingAttributes = incommingRpc.getAttributes(); for (int i = 0; i < incomingAttributes.getLength(); i++) { @@ -76,12 +78,12 @@ public final class SendErrorExceptionUtil { rpcReply.setAttributeNode((Attr) errorDocument.importNode(attr, true)); } } catch (final Exception e) { - logger.warn("Unable to copy incomming attributes to {}, returned rpc-error might be invalid for client", + LOG.warn("Unable to copy incomming attributes to {}, returned rpc-error might be invalid for client", sendErrorException, e); } } - private static Document createDocument(final NetconfDocumentedException sendErrorException) { + private static Document createDocument(final DocumentedException sendErrorException) { return sendErrorException.toXMLDocument(); } @@ -89,9 +91,9 @@ public final class SendErrorExceptionUtil { * Checks if netconf error was sent successfully. */ private static final class SendErrorVerifyingListener implements ChannelFutureListener { - private final NetconfDocumentedException sendErrorException; + private final DocumentedException sendErrorException; - public SendErrorVerifyingListener(final NetconfDocumentedException sendErrorException) { + public SendErrorVerifyingListener(final DocumentedException sendErrorException) { this.sendErrorException = sendErrorException; }