Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
BUG-7033: Fix commit exception due to pipe-lining
[controller.git]
/
opendaylight
/
md-sal
/
sal-distributed-datastore
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
cluster
/
databroker
/
actors
/
dds
/
ClientTransactionCommitCohort.java
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 a7de89aac3e7da504f4010a01eedcda598981597..a4eb5e074f421ffc3e8bb718f02e747540f3839a 100644
(file)
--- 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,13
+9,16
@@
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.collect.ImmutableList;
import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
import java.util.Collection;
import java.util.Collection;
-import
java.util.List
;
+import
org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier
;
final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohort {
final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohort {
- private final
List
<AbstractProxyTransaction> proxies;
+ private final
Collection
<AbstractProxyTransaction> proxies;
- ClientTransactionCommitCohort(final Collection<AbstractProxyTransaction> proxies) {
+ ClientTransactionCommitCohort(final AbstractClientHistory parent, final TransactionIdentifier txId,
+ final Collection<AbstractProxyTransaction> proxies) {
+ super(parent, txId);
this.proxies = ImmutableList.copyOf(proxies);
}
this.proxies = ImmutableList.copyOf(proxies);
}
@@
-32,6
+35,11
@@
final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohor
return ret;
}
return ret;
}
+ private ListenableFuture<Void> addComplete(final ListenableFuture<Void> future) {
+ future.addListener(this::complete, MoreExecutors.directExecutor());
+ return future;
+ }
+
@Override
public ListenableFuture<Void> preCommit() {
final VotingFuture<Void> ret = new VotingFuture<>(null, proxies.size());
@Override
public ListenableFuture<Void> preCommit() {
final VotingFuture<Void> ret = new VotingFuture<>(null, proxies.size());
@@
-49,7
+57,7
@@
final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohor
proxy.doCommit(ret);
}
proxy.doCommit(ret);
}
- return
ret
;
+ return
addComplete(ret)
;
}
@Override
}
@Override
@@
-59,6
+67,6
@@
final class ClientTransactionCommitCohort extends AbstractTransactionCommitCohor
proxy.abort(ret);
}
proxy.abort(ret);
}
- return
ret
;
+ return
addComplete(ret)
;
}
}
}
}