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%2Fsharding%2FPrefixedShardConfigWriter.java;h=2342e5eeb9c933ebd80a9bc80fe4d9410f901239;hb=08d7707661d77d341a259e5c590436de9fc5917f;hp=f6e4d37857b859bd1c92a94117dec32f294b1589;hpb=9e6714ce7693d8e3c00adf72dafce78041d3a7cc;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigWriter.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigWriter.java index f6e4d37857..2342e5eeb9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigWriter.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigWriter.java @@ -11,6 +11,7 @@ package org.opendaylight.controller.cluster.sharding; import com.google.common.util.concurrent.AsyncFunction; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; import java.util.Collection; import java.util.concurrent.ExecutionException; import org.opendaylight.controller.cluster.access.concepts.MemberName; @@ -100,8 +101,9 @@ class PrefixedShardConfigWriter { final AsyncFunction validateFunction = input -> cohort.preCommit(); final AsyncFunction prepareFunction = input -> cohort.commit(); - final ListenableFuture prepareFuture = Futures.transform(cohort.canCommit(), validateFunction); - return Futures.transform(prepareFuture, prepareFunction); + final ListenableFuture prepareFuture = Futures.transformAsync(cohort.canCommit(), validateFunction, + MoreExecutors.directExecutor()); + return Futures.transformAsync(prepareFuture, prepareFunction, MoreExecutors.directExecutor()); } boolean checkDefaultIsPresent() { @@ -117,6 +119,8 @@ class PrefixedShardConfigWriter { } catch (final ReadFailedException e) { LOG.error("Presence check of default shard in configuration failed.", e); return false; + } finally { + snapshot.abort(); } }