X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2Factors%2Fdds%2FClientTransactionCommitCohort.java;h=7887577a939bc3abf2c5d84d24e1dfe320f75299;hb=HEAD;hp=2521c38f91f497ddf00d217e35278d32638c714a;hpb=98d1c5606bad9633ce5549bcd691a98c75abdf6a;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohort.java index 2521c38f91..7887577a93 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionCommitCohort.java @@ -9,16 +9,18 @@ package org.opendaylight.controller.cluster.databroker.actors.dds; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; import java.util.Collection; -import java.util.List; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.yangtools.yang.common.Empty; final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohort { - private final List proxies; + private final Collection proxies; - /** - * @param clientTransaction - */ - ClientTransactionCommitCohort(final Collection proxies) { + ClientTransactionCommitCohort(final AbstractClientHistory parent, final TransactionIdentifier txId, + final Collection proxies) { + super(parent, txId); this.proxies = ImmutableList.copyOf(proxies); } @@ -35,9 +37,14 @@ final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohor return ret; } + private ListenableFuture addComplete(final ListenableFuture future) { + future.addListener(this::complete, MoreExecutors.directExecutor()); + return future; + } + @Override - public ListenableFuture preCommit() { - final VotingFuture ret = new VotingFuture<>(null, proxies.size()); + public ListenableFuture preCommit() { + final var ret = new VotingFuture<>(Empty.value(), proxies.size()); for (AbstractProxyTransaction proxy : proxies) { proxy.preCommit(ret); } @@ -46,22 +53,22 @@ final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohor } @Override - public ListenableFuture commit() { - final VotingFuture ret = new VotingFuture<>(null, proxies.size()); + public ListenableFuture commit() { + final var ret = new VotingFuture<>(CommitInfo.empty(), proxies.size()); for (AbstractProxyTransaction proxy : proxies) { proxy.doCommit(ret); } - return ret; + return addComplete(ret); } @Override - public ListenableFuture abort() { - final VotingFuture ret = new VotingFuture<>(null, proxies.size()); + public ListenableFuture abort() { + final var ret = new VotingFuture<>(Empty.value(), proxies.size()); for (AbstractProxyTransaction proxy : proxies) { proxy.abort(ret); } - return ret; + return addComplete(ret); } -} \ No newline at end of file +}