X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FDOMDataBrokerTransactionChainImpl.java;h=d7f9bdc300cd1ab0d1da1d49ba386803aa8e76d4;hb=refs%2Fchanges%2F02%2F83802%2F42;hp=c7eaef51fe753ceb84802e41171070c5dfe89ca8;hpb=4ef15f7a7e3fb5bcaa6a3202d268a5c945e0aa71;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java index c7eaef51fe..d7f9bdc300 100755 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java @@ -5,13 +5,17 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.md.sal.dom.broker.impl; -import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; + +import com.google.common.base.Supplier; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.Map; import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; @@ -19,7 +23,6 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort; @@ -33,6 +36,7 @@ import org.slf4j.LoggerFactory; * by several {@link DOMStoreTransactionChain} differentiated by provided * {@link org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType} type. */ +@Deprecated final class DOMDataBrokerTransactionChainImpl extends AbstractDOMForwardedTransactionFactory implements DOMTransactionChain { private enum State { @@ -69,12 +73,12 @@ final class DOMDataBrokerTransactionChainImpl extends final TransactionChainListener listener) { super(chains); this.chainId = chainId; - this.broker = Preconditions.checkNotNull(broker); - this.listener = Preconditions.checkNotNull(listener); + this.broker = requireNonNull(broker); + this.listener = requireNonNull(listener); } private void checkNotFailed() { - Preconditions.checkState(state != State.FAILED, "Transaction chain has failed"); + checkState(state != State.FAILED, "Transaction chain has failed"); } @Override @@ -83,19 +87,17 @@ final class DOMDataBrokerTransactionChainImpl extends } @Override - public CheckedFuture submit(final DOMDataWriteTransaction transaction, - final - Collection - cohorts) { + public ListenableFuture commit(final DOMDataWriteTransaction transaction, + final Collection cohorts, final Supplier futureValueSupplier) { checkNotFailed(); checkNotClosed(); - final CheckedFuture ret = broker.submit(transaction, cohorts); + final ListenableFuture ret = broker.commit(transaction, cohorts, futureValueSupplier); COUNTER_UPDATER.incrementAndGet(this); - Futures.addCallback(ret, new FutureCallback() { + Futures.addCallback(ret, new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final T result) { transactionCompleted(); } @@ -103,7 +105,7 @@ final class DOMDataBrokerTransactionChainImpl extends public void onFailure(final Throwable throwable) { transactionFailed(transaction, throwable); } - }); + }, MoreExecutors.directExecutor()); return ret; } @@ -131,12 +133,16 @@ final class DOMDataBrokerTransactionChainImpl extends listener.onTransactionChainSuccessful(this); } + @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", + justification = "https://github.com/spotbugs/spotbugs/issues/811") private void transactionCompleted() { if (COUNTER_UPDATER.decrementAndGet(this) == 0 && state == State.CLOSING) { finishClose(); } } + @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", + justification = "https://github.com/spotbugs/spotbugs/issues/811") private void transactionFailed(final DOMDataWriteTransaction tx, final Throwable cause) { state = State.FAILED; LOG.debug("Transaction chain {} failed.", this, cause);