From c916bb774987f75f48ffb2bbf40b22bec35130f4 Mon Sep 17 00:00:00 2001
From: gbellato <gbellato@localhost>
Date: Wed, 07 Mar 2007 14:36:48 +0000
Subject: [PATCH] Fix for issue 1150 : Take attribute usage into account when synchronizing entries
---
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java | 6 ++++++
opends/src/server/org/opends/server/synchronization/protocol/ModifyMsg.java | 13 +++++++++++++
2 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/opends/src/server/org/opends/server/synchronization/protocol/ModifyMsg.java b/opends/src/server/org/opends/server/synchronization/protocol/ModifyMsg.java
index eeb0f78..2a6b7f2 100644
--- a/opends/src/server/org/opends/server/synchronization/protocol/ModifyMsg.java
+++ b/opends/src/server/org/opends/server/synchronization/protocol/ModifyMsg.java
@@ -40,9 +40,12 @@
import org.opends.server.synchronization.common.ChangeNumber;
import org.opends.server.synchronization.plugin.Historical;
import org.opends.server.types.Attribute;
+import org.opends.server.types.AttributeType;
+import org.opends.server.types.AttributeUsage;
import org.opends.server.types.DN;
import org.opends.server.types.Modification;
+
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
@@ -204,6 +207,16 @@
for (Modification mod : mods)
{
Attribute attr = mod.getAttribute();
+ AttributeType type = attr.getAttributeType();
+ if (type != null )
+ {
+ if (AttributeUsage.DSA_OPERATION.equals(type.getUsage()))
+ {
+ // Attributes with a dsaOperation usage should not be synchronized.
+ // skip them.
+ continue;
+ }
+ }
if (!attr.getAttributeType().equals(Historical.historicalAttrType))
{
LDAPModification ldapmod = new LDAPModification(
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java
index d59a5f0..20e8a20 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/SynchronizationMsgTest.java
@@ -109,6 +109,11 @@
mods4.add(mod);
}
+ Attribute attr5 = new Attribute("namingcontexts", "dc=example");
+ Modification mod5 = new Modification(ModificationType.REPLACE, attr5);
+ List<Modification> mods5 = new ArrayList<Modification>();
+ mods5.add(mod5);
+
return new Object[][] {
{ cn1, "dc=test", mods1},
{ cn2, "dc=cn2", mods1},
@@ -119,6 +124,7 @@
{ cn2, "dc=test with several mod", mods2},
{ cn2, "dc=test with several values", mods3},
{ cn2, "dc=test with long mod", mods4},
+ { cn2, "dc=testDsaOperation", mods5},
};
}
--
Gitblit v1.10.0