From d4deff884919b9b9cc38253c025938a8c4784792 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 03 Oct 2013 13:52:05 +0000
Subject: [PATCH] HistoricalTest failure: Code added a task but did not wait for it to complete before proceeding. Adding a wait should solve the problem.

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java |   45 ++++++++++++++-------------------------------
 1 files changed, 14 insertions(+), 31 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
index 6b36dc6..3309a9c 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
@@ -37,7 +37,6 @@
 import org.opends.messages.Severity;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.backends.MemoryBackend;
-import org.opends.server.backends.task.TaskState;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.protocols.internal.InternalSearchOperation;
@@ -551,11 +550,8 @@
    */
   private void checkChangelogSize(int expectedCount) throws Exception
   {
-    SearchFilter filter = SearchFilter.createFilterFromString("(objectclass=*)");
-    InternalSearchOperation searchOperation =
-      connection.processSearch(DN.decode("dc=replicationchanges"),
-          SearchScope.SUBORDINATE_SUBTREE,
-          filter);
+    InternalSearchOperation searchOperation = connection.processSearch(
+        "dc=replicationchanges", SearchScope.SUBORDINATE_SUBTREE, "(objectclass=*)");
     if (debugEnabled())
     {
       if (searchOperation.getSearchEntries().size() != expectedCount)
@@ -652,17 +648,8 @@
       debugInfo(testCase + " ** TEST ** DS2 (bad genID) changes must be ignored.");
 
       broker2.publish(createAddMsg());
-      try
-      {
-        broker3.receive();
-        fail("No update message is supposed to be received here.");
-      }
-      catch (SocketTimeoutException expected)
-      {
-        // This is the expected result
-        // Note that timeout should be lower than RS monitoring publisher period
-        // so that timeout occurs
-      }
+      assertNoMessageReceived(broker3, "broker3",
+          "Note that timeout should be lower than RS monitoring publisher period so that timeout occurs");
 
       //===========================================================
       debugInfo(testCase + " ** TEST ** The part of the topology with the right gen ID should work well");
@@ -742,8 +729,7 @@
           "objectclass: ds-task-reset-generation-id",
           "ds-task-class-name: org.opends.server.tasks.SetGenerationIdTask",
           "ds-task-reset-generation-id-domain-base-dn: " + baseDnStr);
-      addTask(taskReset, ResultCode.SUCCESS, null);
-      waitTaskState(taskReset, TaskState.COMPLETED_SUCCESSFULLY, null);
+      executeTask(taskReset);
 
       // Broker 2 and 3 should receive 1 change status message to order them
       // to enter the bad gen id status
@@ -789,8 +775,8 @@
       Thread.sleep(500);
       checkChangelogSize(1);
 
-      assertNoMessageReceivedBadGenId(broker2, "broker2");
-      assertNoMessageReceivedBadGenId(broker3, "broker3");
+      assertNoMessageReceived(broker2, "broker2", "bad gen id");
+      assertNoMessageReceived(broker3, "broker3", "bad gen id");
 
       debugInfo("DS2 is publishing a change and RS1 must ignore this change, DS3 must not receive it.");
       AddMsg emsg = createAddMsg();
@@ -800,7 +786,7 @@
       Thread.sleep(500);
       checkChangelogSize(1);
 
-      assertNoMessageReceivedBadGenId(broker3, "broker3");
+      assertNoMessageReceived(broker3, "broker3", "bad gen id");
 
 
       //===============================================================
@@ -840,9 +826,7 @@
           "objectclass: ds-task-reset-generation-id",
           "ds-task-class-name: org.opends.server.tasks.SetGenerationIdTask",
           "ds-task-reset-generation-id-domain-base-dn: " + baseDnStr);
-
-      addTask(taskReset, ResultCode.SUCCESS, null);
-      waitTaskState(taskReset, TaskState.COMPLETED_SUCCESSFULLY, null);
+      executeTask(taskReset);
 
       debugInfo("Verify that RS1 has still the right genID");
       assertEquals(replServer1.getGenerationId(baseDN), rgenId);
@@ -893,13 +877,14 @@
     }
   }
 
-  private void assertNoMessageReceivedBadGenId(ReplicationBroker broker, String brokerName)
+  private void assertNoMessageReceived(ReplicationBroker broker,
+      String brokerName, String reason)
   {
     try
     {
       ReplicationMsg msg = broker.receive();
       fail("No update message is supposed to be received by " + brokerName
-          + " with bad gen id. " + msg);
+          + " reason='" + reason + "'. msg=" + msg);
     }
     catch (SocketTimeoutException expected)
     { /* expected */
@@ -999,8 +984,7 @@
         "objectclass: ds-task-reset-generation-id",
         "ds-task-class-name: org.opends.server.tasks.SetGenerationIdTask",
         "ds-task-reset-generation-id-domain-base-dn: " + baseDnStr);
-      addTask(taskReset, ResultCode.SUCCESS, null);
-      waitTaskState(taskReset, TaskState.COMPLETED_SUCCESSFULLY, null);
+      executeTask(taskReset);
       Thread.sleep(500);
 
       debugInfo("Verifying that all replservers genIds have been reset.");
@@ -1019,8 +1003,7 @@
         "ds-task-class-name: org.opends.server.tasks.SetGenerationIdTask",
         "ds-task-reset-generation-id-domain-base-dn: " + baseDnStr,
         "ds-task-reset-generation-id-new-value: -1");
-      addTask(taskReset, ResultCode.SUCCESS, null);
-      waitTaskState(taskReset, TaskState.COMPLETED_SUCCESSFULLY, null);
+      executeTask(taskReset);
 
       debugInfo("Verifying that all replservers genIds have been reset.");
       int waitRes = 0;

--
Gitblit v1.10.0