X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2FAbstractDOMBrokerWriteTransaction.java;h=c109165c1f24a565456d3eeb73170f957b1dc592;hp=2082ad2078635b3cc490bc1f2faf912bef590768;hb=84d6864d26fddddd92da32fd00d57c7224d4213d;hpb=971a5efd2c7721e23c50ebef115419649c6a44a9 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java index 2082ad2078..c109165c1f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java @@ -11,14 +11,18 @@ package org.opendaylight.controller.cluster.databroker; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.MoreExecutors; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.common.api.MappingCheckedFuture; import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.mdsal.dom.broker.TransactionCommitFailedExceptionMapper; @@ -125,24 +129,30 @@ public abstract class AbstractDOMBrokerWriteTransaction submit() { + return MappingCheckedFuture.create(commit().transform(ignored -> null, + MoreExecutors.directExecutor()), TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER); + } + + @Override + @SuppressWarnings("checkstyle:IllegalCatch") + public FluentFuture commit() { final AbstractDOMTransactionFactory impl = IMPL_UPDATER.getAndSet(this, null); checkRunning(impl); final Collection txns = getSubtransactions(); final Collection cohorts = new ArrayList<>(txns.size()); - CheckedFuture ret; + FluentFuture ret; try { for (final T txn : txns) { cohorts.add(txn.ready()); } - ret = impl.submit(this, cohorts); + ret = impl.commit(this, cohorts); } catch (RuntimeException e) { - ret = Futures.immediateFailedCheckedFuture( - TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER.apply(e)); + ret = FluentFuture.from(Futures.immediateFailedFuture( + TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER.apply(e))); } FUTURE_UPDATER.lazySet(this, ret); return ret;