X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fconfig-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fconfignetconfconnector%2Foperations%2FDiscardChanges.java;h=1f70a1e52df63b62118e8c97af6b4107c9f068b8;hp=3cf702ed7f1b8b532d0a6834b787ee6140bc6fc7;hb=3927509ec3ecfa32a51b725d2b7155d425f5b877;hpb=b2e6c299fad844633c8b40a2e180780f5774a4ae diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/DiscardChanges.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/DiscardChanges.java index 3cf702ed7f..1f70a1e52d 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/DiscardChanges.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/DiscardChanges.java @@ -6,10 +6,11 @@ * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.netconf.confignetconfconnector.operations; +package org.opendaylight.controller.netconf.confignetconfconnector.operations; import com.google.common.base.Optional; - +import java.util.HashMap; +import java.util.Map; import org.opendaylight.controller.config.util.ConfigRegistryClient; import org.opendaylight.controller.netconf.api.NetconfDocumentedException; import org.opendaylight.controller.netconf.api.NetconfDocumentedException.ErrorSeverity; @@ -24,15 +25,12 @@ import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; -import java.util.HashMap; -import java.util.Map; - public class DiscardChanges extends AbstractConfigNetconfOperation { public static final String DISCARD = "discard-changes"; - private static final Logger logger = LoggerFactory.getLogger(DiscardChanges.class); + private static final Logger LOG = LoggerFactory.getLogger(DiscardChanges.class); private final TransactionProvider transactionProvider; @@ -56,17 +54,19 @@ public class DiscardChanges extends AbstractConfigNetconfOperation { protected Element handleWithNoSubsequentOperations(Document document, XmlElement xml) throws NetconfDocumentedException { fromXml(xml); try { - this.transactionProvider.abortTransaction(); - } catch (final IllegalStateException e) { - logger.warn("Abort failed: ", e); + if (transactionProvider.getTransaction().isPresent()) { + this.transactionProvider.abortTransaction(); + } + } catch (final RuntimeException e) { + LOG.warn("Abort failed: ", e); final Map errorInfo = new HashMap<>(); errorInfo .put(ErrorTag.operation_failed.name(), - "Operation failed. Use 'get-config' or 'edit-config' before triggering 'discard-changes' operation"); + "Abort failed."); throw new NetconfDocumentedException(e.getMessage(), e, ErrorType.application, ErrorTag.operation_failed, ErrorSeverity.error, errorInfo); } - logger.trace("Changes discarded successfully from datastore {}", Datastore.candidate); + LOG.trace("Changes discarded successfully from datastore {}", Datastore.candidate); return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.absent());