Fix InMemory shard transaction chaining.
[mdsal.git] / dom / mdsal-dom-inmemory-datastore / src / main / java / org / opendaylight / mdsal / dom / store / inmemory / ShardCommitCoordinationTask.java
index dbbd0abdb2c0e393b56a10116ae53f780832e5d0..a6adbb675f3f3acbfe7b786d32b5926edb6f86a6 100644 (file)
@@ -30,11 +30,14 @@ public class ShardCommitCoordinationTask implements Callable<Void> {
 
     private final DOMDataTreeIdentifier rootShardPrefix;
     private final Collection<DOMStoreThreePhaseCommitCohort> cohorts;
+    private InmemoryDOMDataTreeShardWriteTransaction transaction;
 
     public ShardCommitCoordinationTask(final DOMDataTreeIdentifier rootShardPrefix,
-                                       final Collection<DOMStoreThreePhaseCommitCohort> cohorts) {
+                                       final Collection<DOMStoreThreePhaseCommitCohort> cohorts,
+                                       final InmemoryDOMDataTreeShardWriteTransaction transaction) {
         this.rootShardPrefix = Preconditions.checkNotNull(rootShardPrefix);
         this.cohorts = Preconditions.checkNotNull(cohorts);
+        this.transaction = Preconditions.checkNotNull(transaction);
     }
 
     @Override
@@ -43,6 +46,7 @@ public class ShardCommitCoordinationTask implements Callable<Void> {
         try {
             LOG.debug("Shard {}, commit started", rootShardPrefix);
             commitBlocking();
+            transaction.transactionCommited(transaction);
 
             return null;
         } catch (final TransactionCommitFailedException e) {