From c46ff78c545272ec2fc5679b22c39eae239636c6 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Thu, 24 Jan 2008 09:09:54 +0000
Subject: [PATCH] FIx for issue #2602 (index creation should not be required when changing objects configuration)

---
 opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java |   52 +++++++++++++++++++++++++++-------------------------
 1 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java b/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
index 3c57872..f5d18dd 100644
--- a/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
+++ b/opends/src/server/org/opends/server/extensions/FingerprintCertificateMapper.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2007 Sun Microsystems, Inc.
+ *      Portions Copyright 2007-2008 Sun Microsystems, Inc.
  */
 package org.opends.server.extensions;
 
@@ -45,6 +45,7 @@
 import org.opends.server.api.CertificateMapper;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.loggers.ErrorLogger;
 import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
@@ -148,9 +149,10 @@
       Backend b = DirectoryServer.getBackend(baseDN);
       if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
       {
-        throw new ConfigException(ERR_FCM_ATTR_UNINDEXED.get(
-                                       configuration.dn().toString(),
-                                       t.getNameOrOID(), b.getBackendID()));
+        Message message = WARN_SATUACM_ATTR_UNINDEXED.get(
+            configuration.dn().toString(),
+            t.getNameOrOID(), b.getBackendID());
+        ErrorLogger.logError(message);
       }
     }
   }
@@ -301,27 +303,6 @@
   {
     boolean configAcceptable = true;
 
-    // Make sure that the fingerprint attribute is configured for equality in
-    // all appropriate backends.
-    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
-    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
-    {
-      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
-    }
-
-    AttributeType t = configuration.getFingerprintAttribute();
-    for (DN baseDN : cfgBaseDNs)
-    {
-      Backend b = DirectoryServer.getBackend(baseDN);
-      if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
-      {
-        configAcceptable = false;
-        unacceptableReasons.add(ERR_FCM_ATTR_UNINDEXED.get(
-                                     configuration.dn().toString(),
-                                     t.getNameOrOID(), b.getBackendID()));
-      }
-    }
-
     return configAcceptable;
   }
 
@@ -357,6 +338,27 @@
       currentConfig        = configuration;
     }
 
+    // Make sure that the fingerprint attribute is configured for equality in
+    // all appropriate backends.
+    Set<DN> cfgBaseDNs = configuration.getUserBaseDN();
+    if ((cfgBaseDNs == null) || cfgBaseDNs.isEmpty())
+    {
+      cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+    }
+
+    AttributeType t = configuration.getFingerprintAttribute();
+    for (DN baseDN : cfgBaseDNs)
+    {
+      Backend b = DirectoryServer.getBackend(baseDN);
+      if ((b != null) && (! b.isIndexed(t, IndexType.EQUALITY)))
+      {
+        Message message = WARN_SATUACM_ATTR_UNINDEXED.get(
+            configuration.dn().toString(),
+            t.getNameOrOID(), b.getBackendID());
+        messages.add(message);
+        ErrorLogger.logError(message);
+      }
+    }
 
    return new ConfigChangeResult(resultCode, adminActionRequired, messages);
   }

--
Gitblit v1.10.0