From: Robert Varga Date: Tue, 19 May 2015 19:16:32 +0000 (+0200) Subject: Make sure invokeOperation is set once X-Git-Tag: release/beryllium~569 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=abfa9a03550cbe9fccc4420684dced175dd6d119 Make sure invokeOperation is set once This clarifies how it is initialized and make it final to ensure it is initialized exactly once. Change-Id: Ib05b58dec492870257da2a8653b5b6b010891312 Signed-off-by: Robert Varga (cherry picked from commit 37a5dd4bdd5d0eda6afa0762b42b94762e969956) --- 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 137f6529c7..ea4e513942 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 @@ -39,7 +39,7 @@ class TransactionContextWrapper { private final TransactionIdentifier identifier; - TransactionContextWrapper(TransactionIdentifier identifier) { + TransactionContextWrapper(final TransactionIdentifier identifier) { this.identifier = identifier; } @@ -54,18 +54,20 @@ class TransactionContextWrapper { /** * Adds a TransactionOperation to be executed once the TransactionContext becomes available. */ - private void enqueueTransactionOperation(TransactionOperation operation) { - boolean invokeOperation = true; + private void enqueueTransactionOperation(final TransactionOperation operation) { + final boolean invokeOperation; synchronized(queuedTxOperations) { - if(transactionContext == null) { + if (transactionContext == null) { LOG.debug("Tx {} Queuing TransactionOperation", getIdentifier()); - invokeOperation = false; queuedTxOperations.add(operation); + invokeOperation = false; + } else { + invokeOperation = true; } } - if(invokeOperation) { + if (invokeOperation) { operation.invoke(transactionContext); } } @@ -81,7 +83,7 @@ class TransactionContextWrapper { } } - void executePriorTransactionOperations(TransactionContext localTransactionContext) { + void executePriorTransactionOperations(final TransactionContext localTransactionContext) { while(true) { // Access to queuedTxOperations and transactionContext must be protected and atomic // (ie synchronized) with respect to #addTxOperationOnComplete to handle timing