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%2Fdatastore%2FLocalTransactionContext.java;h=da6d6d14fe9a2c5a574914df0e36d463b0345a09;hp=9fad1f1016bd3e3e33af2566cc0defef2121cee9;hb=7e62b4a59f9e43bcd0585845f1aeb55c44199f27;hpb=6602310b78b5bf54899456e2efa867d116731267 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionContext.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionContext.java index 9fad1f1016..da6d6d14fe 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionContext.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionContext.java @@ -13,12 +13,15 @@ import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; +import java.util.Optional; +import java.util.SortedSet; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.messages.AbstractRead; import org.opendaylight.controller.cluster.datastore.modification.AbstractModification; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransaction; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; +import org.opendaylight.mdsal.common.api.ReadFailedException; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransaction; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import scala.concurrent.Future; /** @@ -45,7 +48,7 @@ abstract class LocalTransactionContext extends AbstractTransactionContext { @Override @SuppressWarnings("checkstyle:IllegalCatch") - public void executeModification(final AbstractModification modification) { + public void executeModification(final AbstractModification modification, final Boolean havePermit) { incrementModificationCount(); if (operationError == null) { try { @@ -57,7 +60,8 @@ abstract class LocalTransactionContext extends AbstractTransactionContext { } @Override - public void executeRead(final AbstractRead readCmd, final SettableFuture proxyFuture) { + public void executeRead(final AbstractRead readCmd, final SettableFuture proxyFuture, + final Boolean havePermit) { Futures.addCallback(readCmd.apply(getReadDelegate()), new FutureCallback() { @Override public void onSuccess(final T result) { @@ -66,7 +70,8 @@ abstract class LocalTransactionContext extends AbstractTransactionContext { @Override public void onFailure(final Throwable failure) { - proxyFuture.setException(failure); + proxyFuture.setException(failure instanceof Exception + ? ReadFailedException.MAPPER.apply((Exception) failure) : failure); } }, MoreExecutors.directExecutor()); } @@ -77,13 +82,14 @@ abstract class LocalTransactionContext extends AbstractTransactionContext { } @Override - public Future readyTransaction() { + public Future readyTransaction(final Boolean havePermit, + final Optional> participatingShardNames) { final LocalThreePhaseCommitCohort cohort = ready(); - return cohort.initiateCoordinatedCommit(); + return cohort.initiateCoordinatedCommit(participatingShardNames); } @Override - public Future directCommit() { + public Future directCommit(final Boolean havePermit) { final LocalThreePhaseCommitCohort cohort = ready(); return cohort.initiateDirectCommit(); }