From 38b88d16b004b4fc62125d00c5bc2bd0a504e306 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Thu, 27 May 2010 12:56:17 +0000
Subject: [PATCH] Fix an issue in External ChangeLog where an NPE is raised when include-attributes are configured and a modification doesn't contain those attributes.

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java |   20 ++++++++++++--------
 1 files changed, 12 insertions(+), 8 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 68c4833..b15b2ba 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
@@ -3856,10 +3856,11 @@
       replServers.add("localhost:"+replicationServerPort);
       DomainFakeCfg domainConf =
         new DomainFakeCfg(baseDn2, 1702, replServers);
-      // SortedSet<String> includeAttributes = new TreeSet<String>();
-      // includeAttributes.add("sn");
+
+      // on o=test2,sid=1702 include attrs set to : 'sn'
       SortedSet<AttributeType> eclInclude = new TreeSet<AttributeType>();
       eclInclude.add(DirectoryServer.getAttributeType("sn"));
+      eclInclude.add(DirectoryServer.getAttributeType("roomnumber"));
       ExternalChangelogDomainFakeCfg eclCfg = 
         new ExternalChangelogDomainFakeCfg(true, eclInclude);
       domainConf.setExternalChangelogDomain(eclCfg);
@@ -3875,6 +3876,8 @@
       baseDn3 = DN.decode(TEST_ROOT_DN_STRING3);
       domainConf =
         new DomainFakeCfg(baseDn3, 1703, replServers);
+
+      // on o=test3,sid=1703 include attrs set to : 'objectclass'
       eclInclude = new TreeSet<AttributeType>();
       eclInclude.add(DirectoryServer.getAttributeType("objectclass"));
       eclCfg = 
@@ -3887,6 +3890,7 @@
       domain3 = MultimasterReplication.createNewDomain(domainConf);
       domain3.start();
 
+      // on o=test2,sid=1704 include attrs set to : 'cn'
       domainConf =
         new DomainFakeCfg(baseDn2, 1704, replServers);
       eclInclude = new TreeSet<AttributeType>();
@@ -3921,7 +3925,7 @@
           + "telephonenumber: 12121212");
 
       Entry uentry1 = TestCaseUtils.entryFromLdifString(lentry);
-      addEntry(uentry1);
+      addEntry(uentry1); // add fiona in o=test2
 
       lentry = new String(
           "dn: cn=Robert Hue," + TEST_ROOT_DN_STRING3 + "\n"
@@ -3934,9 +3938,9 @@
           + "uid: robert\n"
           + "telephonenumber: 131313");
       Entry uentry2 = TestCaseUtils.entryFromLdifString(lentry);
-      addEntry(uentry2);
+      addEntry(uentry2); // add robert in o=test3
 
-      //
+      // mod 'sn' of fiona (o=test2) with 'sn' configured as ecl-incl-att
       AttributeBuilder builder = new AttributeBuilder("sn");
       builder.add("newsn");
       Modification mod =
@@ -3948,7 +3952,7 @@
       modOpBasis.run();
       waitOpResult(modOpBasis, ResultCode.SUCCESS);
 
-      //
+      // mod 'telephonenumber' of robert (o=test3) 
       builder = new AttributeBuilder("telephonenumber");
       builder.add("555555");
       mod =
@@ -3960,7 +3964,7 @@
       modOpBasis2.run();
       waitOpResult(modOpBasis2, ResultCode.SUCCESS);
 
-      //
+      // moddn robert (o=test3) to robert2 (o=test3)
       ModifyDNOperationBasis modDNOp = new ModifyDNOperationBasis(connection,
           InternalClientConnection.nextOperationID(),
           InternalClientConnection.nextMessageID(),
@@ -3971,7 +3975,7 @@
       modDNOp.run();
       waitOpResult(modDNOp, ResultCode.SUCCESS);
 
-      //
+      // del robert (o=test3)
       delOp = new DeleteOperationBasis(connection,
           InternalClientConnection.nextOperationID(),
           InternalClientConnection.nextMessageID(), null,

--
Gitblit v1.10.0