Fix unit test CS warnings in sal-distributed-datastore
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / DistributedDataStoreRemotingIntegrationTest.java
index 4c0aac48346a59e2db49db247cdaa37bbbd2abf0..e157e429e1d9087de43fb1db1957952949abf749 100644 (file)
@@ -15,6 +15,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.timeout;
 import static org.mockito.Mockito.verify;
+
 import akka.actor.ActorRef;
 import akka.actor.ActorSelection;
 import akka.actor.ActorSystem;
@@ -27,6 +28,7 @@ import akka.pattern.Patterns;
 import akka.testkit.JavaTestKit;
 import com.google.common.base.Optional;
 import com.google.common.base.Supplier;
+import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
@@ -100,8 +102,10 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
     private static final String[] CARS_AND_PEOPLE = {"cars", "people"};
     private static final String[] CARS = {"cars"};
 
-    private static final Address MEMBER_1_ADDRESS = AddressFromURIString.parse("akka.tcp://cluster-test@127.0.0.1:2558");
-    private static final Address MEMBER_2_ADDRESS = AddressFromURIString.parse("akka.tcp://cluster-test@127.0.0.1:2559");
+    private static final Address MEMBER_1_ADDRESS = AddressFromURIString.parse(
+            "akka.tcp://cluster-test@127.0.0.1:2558");
+    private static final Address MEMBER_2_ADDRESS = AddressFromURIString.parse(
+            "akka.tcp://cluster-test@127.0.0.1:2559");
 
     private static final String MODULE_SHARDS_CARS_ONLY_1_2 = "module-shards-cars-member-1-and-2.conf";
     private static final String MODULE_SHARDS_CARS_PEOPLE_1_2 = "module-shards-member1-and-2.conf";
@@ -115,8 +119,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
             DatastoreContext.newBuilder().shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(2);
 
     private final DatastoreContext.Builder followerDatastoreContextBuilder =
-            DatastoreContext.newBuilder().shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(5).
-                customRaftPolicyImplementation(DisableElectionsRaftPolicy.class.getName());
+            DatastoreContext.newBuilder().shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(5)
+                .customRaftPolicyImplementation(DisableElectionsRaftPolicy.class.getName());
     private final TransactionIdentifier tx1 = nextTransactionId();
     private final TransactionIdentifier tx2 = nextTransactionId();
 
@@ -165,7 +169,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         leaderDistributedDataStore = leaderTestKit.setupDistributedDataStore(type, moduleShardsConfig, false, shards);
 
         followerTestKit = new IntegrationTestKit(followerSystem, followerDatastoreContextBuilder);
-        followerDistributedDataStore = followerTestKit.setupDistributedDataStore(type, moduleShardsConfig, false, shards);
+        followerDistributedDataStore = followerTestKit.setupDistributedDataStore(type, moduleShardsConfig, false,
+                shards);
 
         leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), shards);
     }
@@ -175,15 +180,15 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         assertEquals("isPresent", true, optional.isPresent());
 
         CollectionNodeBuilder<MapEntryNode, MapNode> listBuilder = ImmutableNodes.mapNodeBuilder(CarsModel.CAR_QNAME);
-        for(NormalizedNode<?, ?> entry: entries) {
+        for (NormalizedNode<?, ?> entry: entries) {
             listBuilder.withChild((MapEntryNode) entry);
         }
 
         assertEquals("Car list node", listBuilder.build(), optional.get());
     }
 
-    private static void verifyNode(DOMStoreReadTransaction readTx, YangInstanceIdentifier path, NormalizedNode<?, ?> expNode)
-            throws Exception {
+    private static void verifyNode(DOMStoreReadTransaction readTx, YangInstanceIdentifier path,
+            NormalizedNode<?, ?> expNode) throws Exception {
         Optional<NormalizedNode<?, ?>> optional = readTx.read(path).get(5, TimeUnit.SECONDS);
         assertEquals("isPresent", true, optional.isPresent());
         assertEquals("Data node", expNode, optional.get());
@@ -245,8 +250,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
         ActorSystem newSystem = ActorSystem.create("reinstated-member2", ConfigFactory.load().getConfig("Member2"));
 
-        try (DistributedDataStore member2Datastore = new IntegrationTestKit(newSystem, leaderDatastoreContextBuilder).
-                setupDistributedDataStore(testName, "module-shards-member2", true, CARS_AND_PEOPLE)) {
+        try (DistributedDataStore member2Datastore = new IntegrationTestKit(newSystem, leaderDatastoreContextBuilder)
+                .setupDistributedDataStore(testName, "module-shards-member2", true, CARS_AND_PEOPLE)) {
             verifyCars(member2Datastore.newReadOnlyTransaction(), car2);
         }
 
@@ -373,7 +378,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
     }
 
     @Test
-    public void testTransactionChainWithMultipleShards() throws Exception{
+    public void testTransactionChainWithMultipleShards() throws Exception {
         initDatastoresWithCarsAndPeople("testTransactionChainWithMultipleShards");
 
         DOMStoreTransactionChain txChain = followerDistributedDataStore.createTransactionChain();
@@ -442,8 +447,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         DOMDataWriteTransaction writeTx = txChain.newWriteOnlyTransaction();
 
         ContainerNode invalidData = ImmutableContainerNodeBuilder.create().withNodeIdentifier(
-                new YangInstanceIdentifier.NodeIdentifier(CarsModel.BASE_QNAME)).
-                    withChild(ImmutableNodes.leafNode(TestModel.JUNK_QNAME, "junk")).build();
+                new YangInstanceIdentifier.NodeIdentifier(CarsModel.BASE_QNAME))
+                    .withChild(ImmutableNodes.leafNode(TestModel.JUNK_QNAME, "junk")).build();
 
         writeTx.merge(LogicalDatastoreType.CONFIGURATION, CarsModel.BASE_PATH, invalidData);
 
@@ -477,8 +482,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         writeTx.put(LogicalDatastoreType.CONFIGURATION, PeopleModel.BASE_PATH, PeopleModel.emptyContainer());
 
         ContainerNode invalidData = ImmutableContainerNodeBuilder.create().withNodeIdentifier(
-                new YangInstanceIdentifier.NodeIdentifier(CarsModel.BASE_QNAME)).
-                    withChild(ImmutableNodes.leafNode(TestModel.JUNK_QNAME, "junk")).build();
+                new YangInstanceIdentifier.NodeIdentifier(CarsModel.BASE_QNAME))
+                    .withChild(ImmutableNodes.leafNode(TestModel.JUNK_QNAME, "junk")).build();
 
         // Note that merge will validate the data and fail but put succeeds b/c deep validation is not
         // done for put for performance reasons.
@@ -518,8 +523,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
         // Switch the leader to the follower
 
-        sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder.
-                shardElectionTimeoutFactor(1).customRaftPolicyImplementation(null));
+        sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder
+                .shardElectionTimeoutFactor(1).customRaftPolicyImplementation(null));
 
         JavaTestKit.shutdownActorSystem(leaderSystem, null, true);
         Cluster.get(followerSystem).leave(MEMBER_1_ADDRESS);
@@ -529,8 +534,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         leaderSystem = ActorSystem.create("cluster-test", ConfigFactory.load().getConfig("Member1"));
         Cluster.get(leaderSystem).join(MEMBER_2_ADDRESS);
 
-        DatastoreContext.Builder newMember1Builder = DatastoreContext.newBuilder().
-                shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(5);
+        DatastoreContext.Builder newMember1Builder = DatastoreContext.newBuilder()
+                .shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(5);
         IntegrationTestKit newMember1TestKit = new IntegrationTestKit(leaderSystem, newMember1Builder);
 
         try (DistributedDataStore ds =
@@ -578,7 +583,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
         carsFollowerShard.get().tell(readyLocal, followerTestKit.getRef());
         Object resp = followerTestKit.expectMsgClass(Object.class);
-        if(resp instanceof akka.actor.Status.Failure) {
+        if (resp instanceof akka.actor.Status.Failure) {
             throw new AssertionError("Unexpected failure response", ((akka.actor.Status.Failure)resp).cause());
         }
 
@@ -597,7 +602,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
         carsFollowerShard.get().tell(readyLocal, followerTestKit.getRef());
         resp = followerTestKit.expectMsgClass(Object.class);
-        if(resp instanceof akka.actor.Status.Failure) {
+        if (resp instanceof akka.actor.Status.Failure) {
             throw new AssertionError("Unexpected failure response", ((akka.actor.Status.Failure)resp).cause());
         }
 
@@ -645,7 +650,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
         carsFollowerShard.get().tell(forwardedReady, followerTestKit.getRef());
         Object resp = followerTestKit.expectMsgClass(Object.class);
-        if(resp instanceof akka.actor.Status.Failure) {
+        if (resp instanceof akka.actor.Status.Failure) {
             throw new AssertionError("Unexpected failure response", ((akka.actor.Status.Failure)resp).cause());
         }
 
@@ -665,7 +670,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
         carsFollowerShard.get().tell(forwardedReady, followerTestKit.getRef());
         resp = followerTestKit.expectMsgClass(Object.class);
-        if(resp instanceof akka.actor.Status.Failure) {
+        if (resp instanceof akka.actor.Status.Failure) {
             throw new AssertionError("Unexpected failure response", ((akka.actor.Status.Failure)resp).cause());
         }
 
@@ -702,10 +707,10 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         // Wait for the commit to be replicated to the follower.
 
         MemberNode.verifyRaftState(followerDistributedDataStore, "cars",
-                raftState -> assertEquals("getLastApplied", 0, raftState.getLastApplied()));
+            raftState -> assertEquals("getLastApplied", 0, raftState.getLastApplied()));
 
         MemberNode.verifyRaftState(followerDistributedDataStore, "people",
-                raftState -> assertEquals("getLastApplied", 0, raftState.getLastApplied()));
+            raftState -> assertEquals("getLastApplied", 0, raftState.getLastApplied()));
 
         // Prepare, ready and canCommit a WO tx that writes to 2 shards. This will become the current tx in
         // the leader shard.
@@ -728,7 +733,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         carIndex++;
         NormalizedNode<?, ?> people = PeopleModel.newPersonMapNode();
         writeTx2.write(PeopleModel.PERSON_LIST_PATH, people);
-        DOMStoreThreePhaseCommitCohort writeTx2Cohort = writeTx2.ready();
+        final DOMStoreThreePhaseCommitCohort writeTx2Cohort = writeTx2.ready();
 
         // Prepare another WO that writes to a single shard and thus will be directly committed on ready. This
         // tx writes 5 cars so 2 BatchedModidifications messages will be sent initially and cached in the
@@ -736,7 +741,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         // sent on ready.
 
         DOMStoreWriteTransaction writeTx3 = followerDistributedDataStore.newWriteOnlyTransaction();
-        for(int i = 1; i <= 5; i++, carIndex++) {
+        for (int i = 1; i <= 5; i++, carIndex++) {
             cars.add(CarsModel.newCarEntry("car" + carIndex, BigInteger.valueOf(carIndex)));
             writeTx3.write(CarsModel.newCarPath("car" + carIndex), cars.getLast());
         }
@@ -757,13 +762,13 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         readWriteTx.write(CarsModel.newCarPath("car" + carIndex), cars.getLast());
 
         IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars",
-                stats -> assertEquals("getReadWriteTransactionCount", 1, stats.getReadWriteTransactionCount()));
+            stats -> assertEquals("getReadWriteTransactionCount", 1, stats.getReadWriteTransactionCount()));
 
         // Disable elections on the leader so it switches to follower.
 
-        sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder.
-                customRaftPolicyImplementation(DisableElectionsRaftPolicy.class.getName()).
-                shardElectionTimeoutFactor(10));
+        sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder
+                .customRaftPolicyImplementation(DisableElectionsRaftPolicy.class.getName())
+                .shardElectionTimeoutFactor(10));
 
         Cluster.get(followerSystem).leave(MEMBER_1_ADDRESS);
         leaderTestKit.waitUntilNoLeader(leaderDistributedDataStore.getActorContext(), "cars");
@@ -771,15 +776,15 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         // Submit all tx's - the messages should get queued for retry.
 
         ListenableFuture<Boolean> writeTx2CanCommit = writeTx2Cohort.canCommit();
-        DOMStoreThreePhaseCommitCohort writeTx3Cohort = writeTx3.ready();
-        DOMStoreThreePhaseCommitCohort writeTx4Cohort = writeTx4.ready();
-        DOMStoreThreePhaseCommitCohort rwTxCohort = readWriteTx.ready();
+        final DOMStoreThreePhaseCommitCohort writeTx3Cohort = writeTx3.ready();
+        final DOMStoreThreePhaseCommitCohort writeTx4Cohort = writeTx4.ready();
+        final DOMStoreThreePhaseCommitCohort rwTxCohort = readWriteTx.ready();
 
         // Enable elections on the other follower so it becomes the leader, at which point the
         // tx's should get forwarded from the previous leader to the new leader to complete the commits.
 
-        sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder.
-                customRaftPolicyImplementation(null).shardElectionTimeoutFactor(1));
+        sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder
+                .customRaftPolicyImplementation(null).shardElectionTimeoutFactor(1));
 
         followerTestKit.doCommit(writeTx1CanCommit, writeTx1Cohort);
         followerTestKit.doCommit(writeTx2CanCommit, writeTx2Cohort);
@@ -809,23 +814,23 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
             writeTx.write(CarsModel.BASE_PATH, CarsModel.emptyContainer());
             writeTx.write(CarsModel.CAR_LIST_PATH, CarsModel.newCarMapNode());
             writeTx.write(PeopleModel.BASE_PATH, PeopleModel.emptyContainer());
-            DOMStoreThreePhaseCommitCohort cohort1 = writeTx.ready();
+            final DOMStoreThreePhaseCommitCohort cohort1 = writeTx.ready();
 
             IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars",
-                    stats -> assertEquals("getTxCohortCacheSize", 1, stats.getTxCohortCacheSize()));
+                stats -> assertEquals("getTxCohortCacheSize", 1, stats.getTxCohortCacheSize()));
 
             writeTx = followerDistributedDataStore.newWriteOnlyTransaction();
             MapEntryNode car = CarsModel.newCarEntry("optima", BigInteger.valueOf(20000));
             writeTx.write(CarsModel.newCarPath("optima"), car);
-            DOMStoreThreePhaseCommitCohort cohort2 = writeTx.ready();
+            final DOMStoreThreePhaseCommitCohort cohort2 = writeTx.ready();
 
             IntegrationTestKit.verifyShardStats(leaderDistributedDataStore, "cars",
-                    stats -> assertEquals("getTxCohortCacheSize", 2, stats.getTxCohortCacheSize()));
+                stats -> assertEquals("getTxCohortCacheSize", 2, stats.getTxCohortCacheSize()));
 
             // Gracefully stop the leader via a Shutdown message.
 
-            sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder.
-                shardElectionTimeoutFactor(100));
+            sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder
+                .shardElectionTimeoutFactor(100));
 
             FiniteDuration duration = FiniteDuration.create(5, TimeUnit.SECONDS);
             Future<ActorRef> future = leaderDistributedDataStore.getActorContext().findLocalShardAsync("cars");
@@ -851,7 +856,7 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
     }
 
     @Test
-    public void testTransactionWithIsolatedLeader() throws Throwable {
+    public void testTransactionWithIsolatedLeader() throws Exception {
         // Set the isolated leader check interval high so we can control the switch to IsolatedLeader.
         leaderDatastoreContextBuilder.shardIsolatedLeaderCheckIntervalInMillis(10000000);
         String testName = "testTransactionWithIsolatedLeader";
@@ -875,14 +880,14 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         followerTestKit.expectTerminated(followerDistributedDataStore.getActorContext().getShardManager());
 
         // Submit the preIsolatedLeaderWriteTx so it's pending
-        DOMStoreThreePhaseCommitCohort preIsolatedLeaderTxCohort = preIsolatedLeaderWriteTx.ready();
+        final DOMStoreThreePhaseCommitCohort preIsolatedLeaderTxCohort = preIsolatedLeaderWriteTx.ready();
 
         // Change the isolated leader check interval low so it changes to IsolatedLeader.
-        sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder.
-                shardIsolatedLeaderCheckIntervalInMillis(200));
+        sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder
+                .shardIsolatedLeaderCheckIntervalInMillis(200));
 
         MemberNode.verifyRaftState(leaderDistributedDataStore, "cars",
-                raftState -> assertEquals("getRaftState", "IsolatedLeader", raftState.getRaftState()));
+            raftState -> assertEquals("getRaftState", "IsolatedLeader", raftState.getRaftState()));
 
         try {
             leaderTestKit.doCommit(noShardLeaderWriteTx.ready());
@@ -891,8 +896,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
             assertEquals("getCause", NoShardLeaderException.class, e.getCause().getClass());
         }
 
-        sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder.
-                shardElectionTimeoutFactor(100));
+        sendDatastoreContextUpdate(leaderDistributedDataStore, leaderDatastoreContextBuilder
+                .shardElectionTimeoutFactor(100));
 
         DOMStoreThreePhaseCommitCohort successTxCohort = successWriteTx.ready();
 
@@ -903,8 +908,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         leaderTestKit.doCommit(successTxCohort);
     }
 
-    @Test(expected=AskTimeoutException.class)
-    public void testTransactionWithShardLeaderNotResponding() throws Throwable {
+    @Test(expected = AskTimeoutException.class)
+    public void testTransactionWithShardLeaderNotResponding() throws Exception {
         initDatastoresWithCars("testTransactionWithShardLeaderNotResponding");
 
         // Do an initial read to get the primary shard info cached.
@@ -929,12 +934,13 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
             assertTrue("Expected ShardLeaderNotRespondingException cause. Actual: " + e.getCause(),
                     e.getCause() instanceof ShardLeaderNotRespondingException);
             assertNotNull("Expected a nested cause", e.getCause().getCause());
-            throw e.getCause().getCause();
+            Throwables.propagateIfInstanceOf(e.getCause().getCause(), Exception.class);
+            Throwables.propagate(e.getCause().getCause());
         }
     }
 
-    @Test(expected=NoShardLeaderException.class)
-    public void testTransactionWithCreateTxFailureDueToNoLeader() throws Throwable {
+    @Test(expected = NoShardLeaderException.class)
+    public void testTransactionWithCreateTxFailureDueToNoLeader() throws Exception {
         initDatastoresWithCars("testTransactionWithCreateTxFailureDueToNoLeader");
 
         // Do an initial read to get the primary shard info cached.
@@ -950,8 +956,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
         Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);
 
-        sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder.
-                operationTimeoutInMillis(10).shardElectionTimeoutFactor(1).customRaftPolicyImplementation(null));
+        sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder
+                .operationTimeoutInMillis(10).shardElectionTimeoutFactor(1).customRaftPolicyImplementation(null));
 
         DOMStoreReadWriteTransaction rwTx = followerDistributedDataStore.newReadWriteTransaction();
 
@@ -960,7 +966,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         try {
             followerTestKit.doCommit(rwTx.ready());
         } catch (ExecutionException e) {
-            throw e.getCause();
+            Throwables.propagateIfInstanceOf(e.getCause(), Exception.class);
+            Throwables.propagate(e.getCause());
         }
     }
 
@@ -969,8 +976,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
         String testName = "testTransactionRetryWithInitialAskTimeoutExOnCreateTx";
         initDatastores(testName, MODULE_SHARDS_CARS_PEOPLE_1_2_3, CARS);
 
-        DatastoreContext.Builder follower2DatastoreContextBuilder = DatastoreContext.newBuilder().
-                shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(5);
+        DatastoreContext.Builder follower2DatastoreContextBuilder = DatastoreContext.newBuilder()
+                .shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(5);
         IntegrationTestKit follower2TestKit = new IntegrationTestKit(follower2System, follower2DatastoreContextBuilder);
 
         try (DistributedDataStore ds =
@@ -990,8 +997,8 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest {
 
             Cluster.get(followerSystem).leave(MEMBER_1_ADDRESS);
 
-            sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder.
-                operationTimeoutInMillis(500).shardElectionTimeoutFactor(1).customRaftPolicyImplementation(null));
+            sendDatastoreContextUpdate(followerDistributedDataStore, followerDatastoreContextBuilder
+                .operationTimeoutInMillis(500).shardElectionTimeoutFactor(1).customRaftPolicyImplementation(null));
 
             DOMStoreReadWriteTransaction rwTx = followerDistributedDataStore.newReadWriteTransaction();