From a90890af51b755a0a6862a32306b1a979d5a9612 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 11 Mar 2014 13:42:19 +0000
Subject: [PATCH] OPENDJ-1368 (CR-3157) Remove AttributeValue
---
opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java | 30 +++++++++++-------------------
1 files changed, 11 insertions(+), 19 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java b/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java
index 34fba2f..26ab03d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/plugins/ReferentialIntegrityPlugin.java
@@ -36,7 +36,6 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
@@ -48,6 +47,7 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
import org.forgerock.opendj.ldap.ModificationType;
+import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchScope;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.meta.PluginCfgDefn;
@@ -56,6 +56,7 @@
import org.opends.server.admin.std.server.ReferentialIntegrityPluginCfg;
import org.opends.server.api.Backend;
import org.opends.server.api.DirectoryThread;
+import org.opends.server.api.MatchingRule;
import org.opends.server.api.ServerShutdownListener;
import org.opends.server.api.plugin.DirectoryServerPlugin;
import org.opends.server.api.plugin.PluginResult;
@@ -67,7 +68,6 @@
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ResultCode;
import org.opends.server.types.operation.SubordinateModifyDNOperation;
import org.opends.server.types.operation.PostOperationModifyDNOperation;
import org.opends.server.types.operation.PostOperationDeleteOperation;
@@ -1231,25 +1231,21 @@
* @param entryDN DN of the entry which contains the <CODE>attr</CODE>
* attribute.
* @return The SUCCESS if the integrity is maintained or
- * CONSTRAINT_VIOLATION oherwise
+ * CONSTRAINT_VIOLATION otherwise
*/
private PluginResult.PreOperation isIntegrityMaintained(Attribute attr,
DN entryDN,
DN entryBaseDN)
{
- /* Iterate over the list of attributes */
-
- Iterator<AttributeValue> attrValIt = attr.iterator();
-
+ final MatchingRule rule = attr.getAttributeType().getEqualityMatchingRule();
try
{
- while (attrValIt.hasNext())
+ for (AttributeValue attrVal : attr)
{
- AttributeValue attrVal = attrValIt.next();
- Entry valueEntry = null;
+ DN valueEntryDN =
+ DN.decode(rule.normalizeAttributeValue(attrVal.getValue()));
- DN valueEntryDN = DN.decode(attrVal.getNormalizedValue());
-
+ final Entry valueEntry;
if (currentConfiguration.getCheckReferencesScopeCriteria()
== CheckReferencesScopeCriteria.NAMING_CONTEXT)
{
@@ -1270,9 +1266,7 @@
valueEntry = DirectoryServer.getEntry(valueEntryDN);
}
- /* Verify that the value entry exists in the backend.
- */
-
+ // Verify that the value entry exists in the backend.
if (valueEntry == null)
{
return PluginResult.PreOperation.stopProcessing(
@@ -1281,9 +1275,7 @@
valueEntryDN, attr.getName(), entryDN));
}
- /* Verify that the value entry conforms to the filter.
- */
-
+ // Verify that the value entry conforms to the filter.
SearchFilter filter = attrFiltMap.get(attr.getAttributeType());
if (filter != null && !filter.matchesEntry(valueEntry))
{
@@ -1294,7 +1286,7 @@
}
}
}
- catch (DirectoryException de)
+ catch (Exception de)
{
return PluginResult.PreOperation.stopProcessing(
ResultCode.OTHER,
--
Gitblit v1.10.0