X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FBindingTranslatedTransactionChain.java;h=73c81ca3a343b21cc4b879163e9b69fdeb385693;hp=d16170ba481d7d1a295a6acdcf33ae83b73b8a7d;hb=55f94e01254f96075dfddf52b1eec08567e0cb16;hpb=876289dc4f25baffbf8ef92c7f1b507c4020aae1 diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java index d16170ba48..73c81ca3a3 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java @@ -25,8 +25,12 @@ import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; import org.opendaylight.yangtools.concepts.Delegator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -class BindingTranslatedTransactionChain implements BindingTransactionChain, Delegator { +final class BindingTranslatedTransactionChain implements BindingTransactionChain, Delegator { + + private static final Logger LOG = LoggerFactory.getLogger(BindingTranslatedTransactionChain.class); private final DOMTransactionChain delegate; private final BindingToNormalizedNodeCodec codec; @@ -82,7 +86,7 @@ class BindingTranslatedTransactionChain implements BindingTransactionChain, Dele return bindingTx; } - protected CheckedFuture listenForFailure( + private CheckedFuture listenForFailure( final WriteTransaction tx, CheckedFuture future) { Futures.addCallback(future, new FutureCallback() { @Override @@ -99,10 +103,13 @@ class BindingTranslatedTransactionChain implements BindingTransactionChain, Dele return future; } - protected void failTransactionChain(WriteTransaction tx, Throwable t) { - // We asume correct state change for underlaying transaction - // chain, so we are not changing any of our internal state - // to mark that we failed. + private void failTransactionChain(WriteTransaction tx, Throwable t) { + /* + * We asume correct state change for underlaying transaction + * + * chain, so we are not changing any of our internal state + * to mark that we failed. + */ this.delegatingListener.onTransactionChainFailed(this, tx, t); } @@ -116,14 +123,18 @@ class BindingTranslatedTransactionChain implements BindingTransactionChain, Dele @Override public void onTransactionChainFailed(final TransactionChain chain, final AsyncTransaction transaction, final Throwable cause) { + Preconditions.checkState(delegate.equals(chain), + "Illegal state - listener for %s was invoked for incorrect chain %s.", delegate, chain); /* * Intentionally NOOP, callback for failure, since we - * are also listening on each transaction for failure. + * are also listening on each transaction future for failure, + * in order to have reference to Binding Transaction (which was seen by client + * of this transaction chain), instead of DOM transaction + * which is known only to this chain, binding transaction implementation + * and underlying transaction chain. * - * by listening on submit future for Binding transaction - * in order to provide Binding transaction (which was seen by client - * of this transaction chain, instead of - */ + */ + LOG.debug("Transaction chain {} failed. Failed DOM Transaction {}",this,transaction,cause); } @Override