[ONOS-6426] Ensure commit is not closed when TransactionId is accessed
Change-Id: I586c69417af45b308a204cc9997219207dc53dd3
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapState.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapState.java
index 4f91010..ea62e72 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapState.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapState.java
@@ -424,19 +424,18 @@
* @return prepare result
*/
protected PrepareResult prepareAndCommit(Commit<? extends TransactionPrepareAndCommit> commit) {
+ TransactionId transactionId = commit.operation().transactionLog().transactionId();
PrepareResult prepareResult = prepare(commit);
- TransactionScope transactionScope =
- activeTransactions.remove(commit.operation().transactionLog().transactionId());
- this.currentVersion = commit.index();
+ TransactionScope transactionScope = activeTransactions.remove(transactionId);
if (prepareResult == PrepareResult.OK) {
+ this.currentVersion = commit.index();
transactionScope = transactionScope.prepared(commit);
commit(transactionScope);
- } else {
+ } else if (transactionScope != null) {
transactionScope.close();
}
discardTombstones();
return prepareResult;
-
}
/**