From 4c6354275265e835bbab21af899df63b4dc0ebcb Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 26 Sep 2007 00:49:44 +0000
Subject: [PATCH] Update the backend API to include new isIndexed methods that can be used to determine whether a given attribute is indexed in a specified manner, or that can be used to determine whether a specified filter is indexed.  At present, all backends except the JE backend and the replication backend are considered always indexed for all operations.  The JE backend is only considered indexed based on its index configuration.  The replication backend is never considered indexed.

---
 opends/src/server/org/opends/server/core/GroupManager.java |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/GroupManager.java b/opends/src/server/org/opends/server/core/GroupManager.java
index edb1d0c..d50a5d8 100644
--- a/opends/src/server/org/opends/server/core/GroupManager.java
+++ b/opends/src/server/org/opends/server/core/GroupManager.java
@@ -25,7 +25,6 @@
  *      Portions Copyright 2007 Sun Microsystems, Inc.
  */
 package org.opends.server.core;
-import org.opends.messages.Message;
 
 
 
@@ -36,7 +35,7 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.opends.server.workflowelement.localbackend.*;
+import org.opends.messages.Message;
 import org.opends.server.admin.ClassPropertyDefinition;
 import org.opends.server.admin.server.ConfigurationAddListener;
 import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -59,8 +58,6 @@
 import org.opends.server.types.DereferencePolicy;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
-
-
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
 import org.opends.server.types.SearchResultEntry;
@@ -70,11 +67,13 @@
 import org.opends.server.types.operation.PostResponseDeleteOperation;
 import org.opends.server.types.operation.PostResponseModifyOperation;
 import org.opends.server.types.operation.PostResponseModifyDNOperation;
+import org.opends.server.workflowelement.localbackend.
+            LocalBackendSearchOperation;
 
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.messages.ConfigMessages.*;
-
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -584,12 +583,18 @@
     InternalClientConnection conn =
          InternalClientConnection.getRootConnection();
 
-    for (Group groupImplementation : groupImplementations.values())
+    for (DN configEntryDN : groupImplementations.keySet())
     {
       SearchFilter filter;
+      Group groupImplementation = groupImplementations.get(configEntryDN);
       try
       {
         filter = groupImplementation.getGroupDefinitionFilter();
+        if (! backend.isIndexed(filter))
+        {
+          logError(WARN_GROUP_FILTER_NOT_INDEXED.get(String.valueOf(filter),
+                        String.valueOf(configEntryDN), backend.getBackendID()));
+        }
       }
       catch (Exception e)
       {

--
Gitblit v1.10.0