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%2FTransactionContextWrapper.java;h=3fb129f3817f75b7388a335458e4b67b4c8aca09;hp=e8dab2c17ebb12e54241543f7ace660e2940009f;hb=b00bee7547dbba0677347e991a8674f90752f6a2;hpb=5105751d47439e5d71d3a3b8035e4afd262c1890 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextWrapper.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextWrapper.java index e8dab2c17e..3fb129f381 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextWrapper.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextWrapper.java @@ -16,7 +16,7 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.TimeUnit; import javax.annotation.concurrent.GuardedBy; -import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.utils.ActorContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,10 +48,11 @@ class TransactionContextWrapper { private final OperationLimiter limiter; - TransactionContextWrapper(TransactionIdentifier identifier, final ActorContext actorContext) { + TransactionContextWrapper(final TransactionIdentifier identifier, final ActorContext actorContext) { this.identifier = Preconditions.checkNotNull(identifier); this.limiter = new OperationLimiter(identifier, - actorContext.getDatastoreContext().getShardBatchedModificationCount() + 1, // 1 extra permit for the ready operation + // 1 extra permit for the ready operation + actorContext.getDatastoreContext().getShardBatchedModificationCount() + 1, TimeUnit.MILLISECONDS.toSeconds(actorContext.getDatastoreContext().getOperationTimeoutInMillis())); } @@ -98,7 +99,7 @@ class TransactionContextWrapper { } void executePriorTransactionOperations(final TransactionContext localTransactionContext) { - while(true) { + while (true) { // Access to queuedTxOperations and transactionContext must be protected and atomic // (ie synchronized) with respect to #addTxOperationOnComplete to handle timing // issues and ensure no TransactionOperation is missed and that they are processed @@ -108,13 +109,13 @@ class TransactionContextWrapper { // in case a TransactionOperation results in another transaction operation being // queued (eg a put operation from a client read Future callback that is notified // synchronously). - Collection operationsBatch = null; + final Collection operationsBatch; synchronized (queuedTxOperations) { if (queuedTxOperations.isEmpty()) { // We're done invoking the TransactionOperations so we can now publish the // TransactionContext. localTransactionContext.operationHandOffComplete(); - if(!localTransactionContext.usesOperationLimiting()){ + if (!localTransactionContext.usesOperationLimiting()) { limiter.releaseAll(); } transactionContext = localTransactionContext; @@ -143,8 +144,8 @@ class TransactionContextWrapper { final Promise promise = Futures.promise(); enqueueTransactionOperation(new TransactionOperation() { @Override - public void invoke(TransactionContext transactionContext) { - promise.completeWith(transactionContext.readyTransaction()); + public void invoke(TransactionContext newTransactionContext) { + promise.completeWith(newTransactionContext.readyTransaction()); } });