X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDistributedDataStoreIntegrationTest.java;h=d0798688c813fa26f4ed516aecb2f5a1ed4133c7;hb=e9fc7e7ed2b13d274518d6a872ab67749ef4507a;hp=4a7a8134ad7892e9a6e472aefa1a4281248225b2;hpb=bc2b83e97bc73930badd4a3063c65b849f82c664;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreIntegrationTest.java index 4a7a8134ad..d0798688c8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreIntegrationTest.java @@ -21,7 +21,7 @@ import akka.actor.ActorSystem; import akka.actor.Address; import akka.actor.AddressFromURIString; import akka.cluster.Cluster; -import akka.testkit.JavaTestKit; +import akka.testkit.javadsl.TestKit; import com.google.common.base.Optional; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableMap; @@ -40,7 +40,6 @@ import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicReference; import org.junit.After; import org.junit.Before; @@ -50,6 +49,7 @@ import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; import org.mockito.Mockito; +import org.opendaylight.controller.cluster.access.client.RequestTimeoutException; import org.opendaylight.controller.cluster.databroker.ClientBackedDataStore; import org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker; import org.opendaylight.controller.cluster.datastore.exceptions.NoShardLeaderException; @@ -90,7 +90,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; @@ -124,7 +124,7 @@ public class DistributedDataStoreIntegrationTest { @After public void tearDown() throws IOException { - JavaTestKit.shutdownActorSystem(system, null, Boolean.TRUE); + TestKit.shutdownActorSystem(system, Boolean.TRUE); system = null; } @@ -554,7 +554,9 @@ public class DistributedDataStoreIntegrationTest { txCohort.get().canCommit().get(5, TimeUnit.SECONDS); fail("Expected NotInitializedException"); } catch (final Exception e) { - Throwables.propagate(Throwables.getRootCause(e)); + final Throwable root = Throwables.getRootCause(e); + Throwables.throwIfUnchecked(root); + throw new RuntimeException(root); } finally { blockRecoveryLatch.countDown(); } @@ -625,7 +627,9 @@ public class DistributedDataStoreIntegrationTest { txReadFuture.get().checkedGet(5, TimeUnit.SECONDS); fail("Expected NotInitializedException"); } catch (final ReadFailedException e) { - Throwables.propagate(Throwables.getRootCause(e)); + final Throwable root = Throwables.getRootCause(e); + Throwables.throwIfUnchecked(root); + throw new RuntimeException(root); } finally { blockRecoveryLatch.countDown(); } @@ -649,7 +653,7 @@ public class DistributedDataStoreIntegrationTest { // The ShardManager uses the election timeout for FindPrimary so // reset it low so it will timeout quickly. datastoreContextBuilder.shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(1) - .shardInitializationTimeout(200, TimeUnit.MILLISECONDS); + .shardInitializationTimeout(200, TimeUnit.MILLISECONDS).frontendRequestTimeoutInSeconds(2); try (AbstractDataStore dataStore = setupAbstractDataStore( testParameter, testName, false, shardName)) { @@ -699,14 +703,16 @@ public class DistributedDataStoreIntegrationTest { // should have timed out and throw an appropriate // exception cause. try { - txCohort.get().canCommit().get(5, TimeUnit.SECONDS); + txCohort.get().canCommit().get(10, TimeUnit.SECONDS); fail("Expected NoShardLeaderException"); } catch (final ExecutionException e) { - assertTrue(Throwables.getRootCause(e) instanceof NoShardLeaderException); - assertEquals(DistributedDataStore.class, testParameter); - } catch (TimeoutException e) { - // ClientBackedDataStore doesn't set cause to ExecutionException, future just time outs - assertEquals(ClientBackedDataStore.class, testParameter); + final String msg = "Unexpected exception: " + + Throwables.getStackTraceAsString(e.getCause()); + if (DistributedDataStore.class.equals(testParameter)) { + assertTrue(Throwables.getRootCause(e) instanceof NoShardLeaderException); + } else { + assertTrue(msg, Throwables.getRootCause(e) instanceof RequestTimeoutException); + } } } finally { try { @@ -1276,8 +1282,8 @@ public class DistributedDataStoreIntegrationTest { CarsModel.newCarsMapNode(CarsModel.newCarEntry("optima", BigInteger.valueOf(20000L)), CarsModel.newCarEntry("sportage", BigInteger.valueOf(30000L)))); - DataTree dataTree = InMemoryDataTreeFactory.getInstance().create(TreeType.OPERATIONAL); - dataTree.setSchemaContext(SchemaContextHelper.full()); + DataTree dataTree = new InMemoryDataTreeFactory().create( + DataTreeConfiguration.DEFAULT_OPERATIONAL, SchemaContextHelper.full()); AbstractShardTest.writeToStore(dataTree, CarsModel.BASE_PATH, carsNode); NormalizedNode root = AbstractShardTest.readStore(dataTree, YangInstanceIdentifier.EMPTY); @@ -1285,8 +1291,8 @@ public class DistributedDataStoreIntegrationTest { new ShardSnapshotState(new MetadataShardDataTreeSnapshot(root)), Collections.emptyList(), 2, 1, 2, 1, 1, "member-1", null); - dataTree = InMemoryDataTreeFactory.getInstance().create(TreeType.OPERATIONAL); - dataTree.setSchemaContext(SchemaContextHelper.full()); + dataTree = new InMemoryDataTreeFactory().create(DataTreeConfiguration.DEFAULT_OPERATIONAL, + SchemaContextHelper.full()); final NormalizedNode peopleNode = PeopleModel.create(); AbstractShardTest.writeToStore(dataTree, PeopleModel.BASE_PATH, peopleNode);