From 1d037ce4fe5f011bdfffacfc4c62392358519be1 Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Mon, 07 Sep 2009 15:57:59 +0000
Subject: [PATCH] Fix #4211 ECL: NullPointerException when searching modrdn change
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ExternalChangeLogTest.java | 8 +++++---
opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java | 7 +++++--
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java b/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
index a00f726..b724b1f 100644
--- a/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
+++ b/opends/src/server/org/opends/server/workflowelement/externalchangelog/ECLSearchOperation.java
@@ -790,9 +790,12 @@
Attribute a = Attributes.create("newrdn", modDNMsg.getNewRDN());
clEntry.addAttribute(a, null);
- Attribute b = Attributes.create("newsuperior",
+ if (modDNMsg.getNewSuperior()!=null)
+ {
+ Attribute b = Attributes.create("newsuperior",
modDNMsg.getNewSuperior());
- clEntry.addAttribute(b, null);
+ clEntry.addAttribute(b, null);
+ }
Attribute c = Attributes.create("deleteoldrdn",
String.valueOf(modDNMsg.deleteOldRdn()));
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 1622ef9..1c88152 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
@@ -1265,12 +1265,13 @@
debugInfo(tn, " publishes " + modMsg.getChangeNumber());
// Publish modDN
+ DN newSuperior = DN.decode(TEST_ROOT_DN_STRING2);
ChangeNumber cn4 = new ChangeNumber(TimeThread.getTime(), ts++, (short)1201);
ModifyDNOperationBasis op = new ModifyDNOperationBasis(connection, 1, 1, null,
DN.decode("uid="+tn+"4," + TEST_ROOT_DN_STRING), // entryDN
RDN.decode("uid="+tn+"new4"), // new rdn
true, // deleteoldrdn
- DN.decode(TEST_ROOT_DN_STRING2)); // new superior
+ newSuperior);
op.setAttachment(SYNCHROCONTEXT, new ModifyDnContext(cn4, tn+"uuid4",
"newparentId"));
LocalBackendModifyDNOperation localOp = new LocalBackendModifyDNOperation(op);
@@ -1382,8 +1383,9 @@
checkValue(resultEntry,"changetype","modrdn");
checkValue(resultEntry,"changelogcookie",cookie4);
checkValue(resultEntry,"targetentryuuid",tn+"uuid4");
- checkValue(resultEntry,"newrdn","uid=ECLAllOpsnew4");
- checkValue(resultEntry,"newsuperior",TEST_ROOT_DN_STRING2);
+ checkValue(resultEntry,"newrdn","uid=ECLAllOpsnew4");
+ if (newSuperior != null)
+ checkValue(resultEntry,"newsuperior",TEST_ROOT_DN_STRING2);
checkValue(resultEntry,"deleteoldrdn","true");
checkValue(resultEntry,"changenumber","0");
}
--
Gitblit v1.10.0