From 02bea04ca4333efa572b429cfa98035c7178b629 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Tue, 20 Aug 2013 13:05:53 +0000
Subject: [PATCH] Fix nightly tests failure within these tests. It was due to a side effect of the last commit as well as several locations where cleanup wasn't properly done after a test.

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java |  189 +++++++++++++++++++++++------------------------
 1 files changed, 93 insertions(+), 96 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
index bf0b00b..102d42f 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java
@@ -361,10 +361,10 @@
   public void ECLReplicationServerFullTest15() throws Exception
   {
     // Write 4 changes and read ECL from start
-    int ts = ECLCompatWriteReadAllOps(1);
+    ECLCompatWriteReadAllOps(1);
 
     // Write 4 additional changes and read ECL from a provided draft change number
-    ts = ECLCompatWriteReadAllOps(5);
+    int ts = ECLCompatWriteReadAllOps(5);
 
     // Test request from a provided change number - read 6
     ECLCompatReadFrom(6);
@@ -462,8 +462,6 @@
     while (!(msg instanceof DoneMsg));
     final String className = msg.getClass().getCanonicalName();
     assertEquals(msgc, 1, "Ending " + tn + " with incorrect message number :" + className);
-    assertTrue(msg instanceof DoneMsg,
-        "Ending " + tn + " with incorrect message type :" + className);
   }
 
   /**
@@ -632,11 +630,10 @@
     ReplicationBroker server01 = null;
     LDAPReplicationDomain domain2 = null;
     Backend backend2 = null;
-    DN baseDn2 = null;
 
     try
     {
-      baseDn2 = DN.decode(TEST_ROOT_DN_STRING2);
+      DN baseDn2 = DN.decode(TEST_ROOT_DN_STRING2);
 
       server01 = openReplicationSession(
           DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
@@ -644,14 +641,14 @@
 
       // create and publish 1 change on each suffix
       long time = TimeThread.getTime();
-      int ts = 1;
-      ChangeNumber cn1 = new ChangeNumber(time, ts++, SERVER_ID_1);
+
+      ChangeNumber cn1 = new ChangeNumber(time, 1, SERVER_ID_1);
       DeleteMsg delMsg1 =
         new DeleteMsg("o=" + tn + "1," + TEST_ROOT_DN_STRING, cn1, "ECLBasicMsg1uid");
       server01.publish(delMsg1);
       debugInfo(tn, "publishes:" + delMsg1);
 
-      // Initialize a second test backend o=test2, in addtion to o=test
+      // Initialize a second test backend o=test2, in addition to o=test
       // Configure replication on this backend
       // Add the root entry in the backend
       backend2 = initializeTestBackend(false, TEST_ROOT_DN_STRING2,
@@ -661,11 +658,7 @@
 
       DomainFakeCfg domainConf =
         new DomainFakeCfg(baseDn2,  1602, replServers);
-      ExternalChangelogDomainFakeCfg eclCfg =
-        new ExternalChangelogDomainFakeCfg(true, null, null);
-      domainConf.setExternalChangelogDomain(eclCfg);
-
-      domain2 = MultimasterReplication.createNewDomain(domainConf);
+      domain2 = createDomain(domainConf, null,null);
       domain2.start();
 
       sleep(1000);
@@ -682,7 +675,8 @@
       assertThat(entries).hasSize(2);
       debugAndWriteEntries(null, entries, tn);
 
-      eclCfg = new ExternalChangelogDomainFakeCfg(false, null, null);
+      ExternalChangelogDomainFakeCfg eclCfg =
+          new ExternalChangelogDomainFakeCfg(false, null, null);
       domainConf.setExternalChangelogDomain(eclCfg);
       domain2.applyConfigurationChange(domainConf);
 
@@ -708,9 +702,9 @@
     finally
     {
       // Cleaning
-      if (domain2 != null && baseDn2 != null)
+      if (domain2 != null)
       {
-        MultimasterReplication.deleteDomain(baseDn2);
+        domain2.shutdown();
       }
       if (backend2 != null)
       {
@@ -1136,17 +1130,19 @@
   {
     String tn = "ECLAllOps";
     debugInfo(tn, "Starting test\n\n");
-
+    ReplicationBroker server01 = null;
+    ReplicationBroker server02 = null;
+    try
     {
       LDIFWriter ldifWriter = getLDIFWriter();
 
       // Creates broker on o=test
-      ReplicationBroker server01 = openReplicationSession(
+      server01 = openReplicationSession(
           DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
           100, replicationServerPort, brokerSessionTimeout, true);
 
       // Creates broker on o=test2
-      ReplicationBroker server02 = openReplicationSession(
+      server02 = openReplicationSession(
           DN.decode(TEST_ROOT_DN_STRING2), SERVER_ID_2,
           100, replicationServerPort, brokerSessionTimeout, true);
 
@@ -1214,52 +1210,48 @@
       assertEquals(searchOp.getSearchEntries().size(), 4);
       List<SearchResultEntry> entries = searchOp.getSearchEntries();
       debugAndWriteEntries(ldifWriter, entries, tn);
-
-      if (entries != null)
+      int i=0;
+      for (SearchResultEntry resultEntry : entries)
       {
-        int i=0;
-        for (SearchResultEntry resultEntry : entries)
-        {
-          i++;
-          checkDn(cns[i - 1], resultEntry);
-          checkValue(resultEntry, "targetdn", "uid=" + tn + i + "," + TEST_ROOT_DN_STRING);
-          checkValue(resultEntry, "replicationcsn", cns[i - 1].toString());
-          checkValue(resultEntry, "replicaidentifier", String.valueOf(SERVER_ID_1));
-          checkValue(resultEntry, "changelogcookie", cookies[i - 1]);
-          checkValue(resultEntry, "changenumber", "0");
+        i++;
+        checkDn(cns[i - 1], resultEntry);
+        checkValue(resultEntry, "targetdn", "uid=" + tn + i + "," + TEST_ROOT_DN_STRING);
+        checkValue(resultEntry, "replicationcsn", cns[i - 1].toString());
+        checkValue(resultEntry, "replicaidentifier", String.valueOf(SERVER_ID_1));
+        checkValue(resultEntry, "changelogcookie", cookies[i - 1]);
+        checkValue(resultEntry, "changenumber", "0");
 
-          if (i==1)
+        if (i==1)
+        {
+          checkValue(resultEntry, "changetype", "delete");
+          checkValue(resultEntry,"targetentryuuid",tn+"uuid1");
+        } else if (i==2)
+        {
+          checkValue(resultEntry, "changetype", "add");
+          String expectedValue1 = "objectClass: domain\nobjectClass: top\n"
+              + "entryUUID: 11111111-1111-1111-1111-111111111111\n";
+          String expectedValue2 = "entryUUID: 11111111-1111-1111-1111-111111111111\n"
+              + "objectClass: domain\nobjectClass: top\n";
+          checkPossibleValues(resultEntry,"changes",expectedValue1, expectedValue2);
+          checkValue(resultEntry,"targetentryuuid",user1entryUUID);
+        } else if (i==3)
+        {
+          // check the MOD entry has the right content
+          checkValue(resultEntry, "changetype", "modify");
+          String expectedValue =
+              "replace: description\n" + "description: new value\n-\n";
+          checkValue(resultEntry,"changes",expectedValue);
+          checkValue(resultEntry,"targetentryuuid",tn+"uuid3");
+        } else if (i==4)
+        {
+          checkValue(resultEntry,"changetype","modrdn");
+          checkValue(resultEntry,"targetentryuuid",tn+"uuid4");
+          checkValue(resultEntry,"newrdn","uid=ECLAllOpsnew4");
+          if (newSuperior != null)
           {
-            checkValue(resultEntry, "changetype", "delete");
-            checkValue(resultEntry,"targetentryuuid",tn+"uuid1");
-          } else if (i==2)
-          {
-            checkValue(resultEntry, "changetype", "add");
-            String expectedValue1 = "objectClass: domain\nobjectClass: top\n"
-                + "entryUUID: 11111111-1111-1111-1111-111111111111\n";
-            String expectedValue2 = "entryUUID: 11111111-1111-1111-1111-111111111111\n"
-                + "objectClass: domain\nobjectClass: top\n";
-            checkPossibleValues(resultEntry,"changes",expectedValue1, expectedValue2);
-            checkValue(resultEntry,"targetentryuuid",user1entryUUID);
-          } else if (i==3)
-          {
-            // check the MOD entry has the right content
-            checkValue(resultEntry, "changetype", "modify");
-            String expectedValue =
-                "replace: description\n" + "description: new value\n-\n";
-            checkValue(resultEntry,"changes",expectedValue);
-            checkValue(resultEntry,"targetentryuuid",tn+"uuid3");
-          } else if (i==4)
-          {
-            checkValue(resultEntry,"changetype","modrdn");
-            checkValue(resultEntry,"targetentryuuid",tn+"uuid4");
-            checkValue(resultEntry,"newrdn","uid=ECLAllOpsnew4");
-            if (newSuperior != null)
-            {
-              checkValue(resultEntry, "newsuperior", TEST_ROOT_DN_STRING2);
-            }
-            checkValue(resultEntry,"deleteoldrdn","true");
+            checkValue(resultEntry, "newsuperior", TEST_ROOT_DN_STRING2);
           }
+          checkValue(resultEntry,"deleteoldrdn","true");
         }
       }
 
@@ -1270,6 +1262,8 @@
       List<String> ctrlList = getControls(result);
       assertThat(ctrlList).containsExactly(cookies);
 
+    }
+    finally {
       stop(server01, server02);
     }
     debugInfo(tn, "Ending test with success");
@@ -1414,7 +1408,7 @@
   {
     String tn = "ECLPsearch_" + changesOnly + "_" + compatMode;
     debugInfo(tn, "Starting test \n\n");
-    Socket s =null;
+    Socket s;
 
     // create stats
     for (ConnectionHandler<?> ch : DirectoryServer.getConnectionHandlers())
@@ -1495,8 +1489,7 @@
 
       InvocationCounterPlugin.resetAllCounters();
 
-      long searchRequests   = ldapStatistics.getSearchRequests();
-      long searchEntries    = ldapStatistics.getSearchResultEntries();
+      long searchEntries;
       long searchReferences = ldapStatistics.getSearchResultReferences();
       long searchesDone     = ldapStatistics.getSearchResultsDone();
 
@@ -1506,16 +1499,13 @@
       w.writeMessage(message);
       sleep(500);
 
-      SearchResultEntryProtocolOp searchResultEntry = null;
-      SearchResultDoneProtocolOp searchResultDone = null;
+      SearchResultDoneProtocolOp searchResultDone;
 
       if (!changesOnly)
       {
         // Wait for change 1
         debugInfo(tn, "Waiting for init search expected to return change 1");
         searchEntries = 0;
-        message = null;
-
         {
           while (searchEntries < 1 && (message = r.readMessage()) != null)
           {
@@ -1524,7 +1514,8 @@
             switch (message.getProtocolOpType())
             {
             case LDAPConstants.OP_TYPE_SEARCH_RESULT_ENTRY:
-              searchResultEntry = message.getSearchResultEntryProtocolOp();
+              SearchResultEntryProtocolOp searchResultEntry =
+                  message.getSearchResultEntryProtocolOp();
               searchEntries++;
               // FIXME:ECL Double check 1 is really the valid value here.
               checkValue(searchResultEntry.toSearchResultEntry(),"changenumber",
@@ -1538,7 +1529,8 @@
             case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
               searchResultDone = message.getSearchResultDoneProtocolOp();
               assertEquals(
-                  searchResultDone.getResultCode(), ResultCode.SUCCESS,
+                  searchResultDone.getResultCode(),
+                  ResultCode.SUCCESS.getIntValue(),
                   searchResultDone.getErrorMessage().toString());
               searchesDone++;
               break;
@@ -1564,9 +1556,7 @@
 
       // wait for the 1 new entry
       searchEntries = 0;
-      searchResultEntry = null;
-      searchResultDone = null;
-      message = null;
+      SearchResultEntryProtocolOp searchResultEntry = null;
       while (searchEntries < 1 && (message = r.readMessage()) != null)
       {
         debugInfo(tn, "psearch search  Result=" +
@@ -1585,7 +1575,8 @@
         case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
           searchResultDone = message.getSearchResultDoneProtocolOp();
           assertEquals(
-              searchResultDone.getResultCode(), ResultCode.SUCCESS,
+              searchResultDone.getResultCode(),
+              ResultCode.SUCCESS.getIntValue(),
               searchResultDone.getErrorMessage().toString());
 //        assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
           searchesDone++;
@@ -1608,7 +1599,8 @@
         }
       }
       debugInfo(tn, "Second search done successfully : " + searchResultEntry);
-      server01.stop();
+
+      stop(server01);
       waitForClose(s);
 
       // TODO:  Testing ACI is disabled because it is currently failing when
@@ -1896,7 +1888,8 @@
             case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
               searchResultDone = message.getSearchResultDoneProtocolOp();
               assertEquals(
-                  searchResultDone.getResultCode(), ResultCode.SUCCESS,
+                  searchResultDone.getResultCode(),
+                  ResultCode.SUCCESS.getIntValue(),
                   searchResultDone.getErrorMessage().toString());
               searchesDone++;
               break;
@@ -1931,7 +1924,8 @@
             case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
               searchResultDone = message.getSearchResultDoneProtocolOp();
               assertEquals(
-                  searchResultDone.getResultCode(), ResultCode.SUCCESS,
+                  searchResultDone.getResultCode(),
+                  ResultCode.SUCCESS.getIntValue(),
                   searchResultDone.getErrorMessage().toString());
               searchesDone++;
               break;
@@ -1966,7 +1960,8 @@
             case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
               searchResultDone = message.getSearchResultDoneProtocolOp();
               assertEquals(
-                  searchResultDone.getResultCode(), ResultCode.SUCCESS,
+                  searchResultDone.getResultCode(),
+                  ResultCode.SUCCESS.getIntValue(),
                   searchResultDone.getErrorMessage().toString());
               searchesDone++;
               break;
@@ -2031,7 +2026,8 @@
         case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
           searchResultDone = message.getSearchResultDoneProtocolOp();
           assertEquals(
-              searchResultDone.getResultCode(), ResultCode.SUCCESS,
+              searchResultDone.getResultCode(),
+              ResultCode.SUCCESS.getIntValue(),
               searchResultDone.getErrorMessage().toString());
 //        assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
           searchesDone++;
@@ -2064,7 +2060,8 @@
         case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
           searchResultDone = message.getSearchResultDoneProtocolOp();
           assertEquals(
-              searchResultDone.getResultCode(), ResultCode.SUCCESS,
+              searchResultDone.getResultCode(),
+              ResultCode.SUCCESS.getIntValue(),
               searchResultDone.getErrorMessage().toString());
 //        assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
           searchesDone++;
@@ -2097,7 +2094,8 @@
         case LDAPConstants.OP_TYPE_SEARCH_RESULT_DONE:
           searchResultDone = message.getSearchResultDoneProtocolOp();
           assertEquals(
-              searchResultDone.getResultCode(), ResultCode.SUCCESS,
+              searchResultDone.getResultCode(),
+              ResultCode.SUCCESS.getIntValue(),
               searchResultDone.getErrorMessage().toString());
 //        assertEquals(InvocationCounterPlugin.waitForPostResponse(), 1);
           searchesDone++;
@@ -2476,7 +2474,8 @@
       // test 4 entries returned
       assertEntries(searchOp.getSearchEntries(), firstDraftChangeNumber, tn,
           ldifWriter, user1entryUUID, cns[0], gblCN, cns[2], cns[3]);
-      server01.stop();
+
+      stop(server01);
 
       // Test with filter on draft changenumber
       filter = "(&(targetdn=*"+tn.toLowerCase()+"*,o=test)(&(changenumber>="+
@@ -2581,7 +2580,7 @@
     checkValue(resultEntry, "targetentryuuid", user1entryUUID);
     checkValue(resultEntry, "changenumber", "6");
 
-    server01.stop();
+    stop(server01);
 
     debugInfo(tn, "Ending test with success");
   }
@@ -2609,7 +2608,7 @@
     List<Control> controls = entries.get(0).getControls();
     assertTrue(controls.isEmpty());
 
-    server01.stop();
+    stop(server01);
 
     debugInfo(tn, "Ending test with success");
   }
@@ -2618,8 +2617,8 @@
    * Read the ECL in compat mode from firstDraftChangeNumber and to
    * lastDraftChangeNumber.
    *
-   * @param firstDraftChangeNumber
-   * @param lastDraftChangeNumber
+   * @param firstDraftChangeNumber the lower limit
+   * @param lastDraftChangeNumber  the higher limit
    */
   private void ECLCompatReadFromTo(int firstDraftChangeNumber,
       int lastDraftChangeNumber) throws Exception
@@ -2896,7 +2895,8 @@
     server01.publish(delMsg);
     debugInfo(tn, " publishes " + delMsg.getChangeNumber());
     sleep(500);
-    server01.stop();
+
+    stop(server01);
 
     ECLCompatTestLimits(expectedFirst, expectedLast + 1, true);
 
@@ -3028,9 +3028,8 @@
       assertEquals(searchOp.getSearchEntries().size(), 3);
       debugInfo(tn, "Perfs - last 3 changes searched in (ms):" + (t5 - t4));
       debugAndWriteEntries(null, searchOp.getSearchEntries(), tn);
-
-      server01.stop();
     }
+    stop(server01);
     debugInfo(tn, "Ending test with success");
   }
 
@@ -3051,15 +3050,13 @@
     LDAPReplicationDomain domain2 = null;
     LDAPReplicationDomain domain3 = null;
     LDAPReplicationDomain domain21 = null;
-    DN baseDn2 = null;
-    DN baseDn3 = null;
     try
     {
       // Initialize a second test backend o=test2, in addtion to o=test
       // Configure replication on this backend
       // Add the root entry in the backend
       backend2 = initializeTestBackend(false, TEST_ROOT_DN_STRING2, TEST_BACKEND_ID2);
-      baseDn2 = DN.decode(TEST_ROOT_DN_STRING2);
+      DN baseDn2 = DN.decode(TEST_ROOT_DN_STRING2);
 
       SortedSet<String> replServers = newSet("localhost:" + replicationServerPort);
 
@@ -3071,7 +3068,7 @@
       domain2.start();
 
       backend3 = initializeTestBackend(false, TEST_ROOT_DN_STRING3, TEST_BACKEND_ID3);
-      baseDn3 = DN.decode(TEST_ROOT_DN_STRING3);
+      DN baseDn3 = DN.decode(TEST_ROOT_DN_STRING3);
 
       // on o=test3,sid=1703 include attrs set to : 'objectclass'
       eclInclude = newSet("objectclass");
@@ -3209,13 +3206,13 @@
 
         if (domain2 != null)
         {
-          MultimasterReplication.deleteDomain(baseDn2);
+          domain2.shutdown();
         }
         removeTestBackend2(backend2);
 
         if (domain3 != null)
         {
-          MultimasterReplication.deleteDomain(baseDn3);
+          domain3.shutdown();
         }
         removeTestBackend2(backend3);
       }

--
Gitblit v1.10.0