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=fa60e0fbe54f1604d3b68dcd5df14ba3aed7183f;hp=b0507f6383da8e24b7c936432fa06f588a6e414e;hpb=149feb98f151186975fe42bab5853e05aafd4b51;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 b0507f6383..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; @@ -88,7 +89,7 @@ class PrefixedShardConfigWriter { submitBlocking(cohort); } - private void submitBlocking(final DOMStoreThreePhaseCommitCohort cohort) { + private static void submitBlocking(final DOMStoreThreePhaseCommitCohort cohort) { try { doSubmit(cohort).get(); } catch (final InterruptedException | ExecutionException e) { @@ -96,12 +97,13 @@ class PrefixedShardConfigWriter { } } - private ListenableFuture doSubmit(final DOMStoreThreePhaseCommitCohort cohort) { + private static ListenableFuture doSubmit(final DOMStoreThreePhaseCommitCohort cohort) { 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(); } }