From 415e28f088bb1f9e4800c74539d401548012eedd Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Wed, 12 Nov 2008 03:43:10 +0000
Subject: [PATCH] Fixed an issue where adding a local backend with dsconfig resulted in a number of erroneous messages printed to the error log.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java | 47 ++++++++++++---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java | 15 +++--
opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java | 3
opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java | 2
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java | 91 +++++++++++++++++++++++-------
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java | 6 --
6 files changed, 119 insertions(+), 45 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
index 98e74ec..c99571e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/authorization/dseecompat/AciListenerManager.java
@@ -226,7 +226,8 @@
// the ACI attribute. If it does not, then log a warning message because
// this processing could be very expensive.
AttributeType aciType = DirectoryServer.getAttributeType("aci", true);
- if (! backend.isIndexed(aciType, IndexType.PRESENCE))
+ if (backend.getEntryCount() > 0 &&
+ ! backend.isIndexed(aciType, IndexType.PRESENCE))
{
logError(WARN_ACI_ATTRIBUTE_NOT_INDEXED.get(backend.getBackendID(),
"aci"));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java
index 7506cc7..6b90b13 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/AttributeIndex.java
@@ -1420,9 +1420,12 @@
entryContainer);
equalityIndex.open();
- adminActionRequired = true;
- messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
- name + ".equality"));
+ if(!equalityIndex.isTrusted())
+ {
+ adminActionRequired = true;
+ messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ equalityIndex.getName()));
+ }
}
else
@@ -1434,7 +1437,7 @@
adminActionRequired = true;
Message message =
NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
- name + ".equality");
+ equalityIndex.getName());
messages.add(message);
this.equalityIndex.setIndexEntryLimit(indexEntryLimit);
}
@@ -1480,10 +1483,12 @@
entryContainer);
presenceIndex.open();
- adminActionRequired = true;
-
- messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
- name + ".presence"));
+ if(!presenceIndex.isTrusted())
+ {
+ adminActionRequired = true;
+ messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ presenceIndex.getName()));
+ }
}
else
{
@@ -1494,7 +1499,7 @@
Message message =
NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
- name + ".presence");
+ presenceIndex.getName());
messages.add(message);
}
}
@@ -1540,9 +1545,12 @@
entryContainer);
substringIndex.open();
- adminActionRequired = true;
- messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
- name + ".substring"));
+ if(!substringIndex.isTrusted())
+ {
+ adminActionRequired = true;
+ messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ substringIndex.getName()));
+ }
}
else
{
@@ -1552,7 +1560,7 @@
adminActionRequired = true;
Message message =
NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
- name + ".substring");
+ substringIndex.getName());
messages.add(message);
}
@@ -1605,9 +1613,12 @@
entryContainer);
orderingIndex.open();
- adminActionRequired = true;
- messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
- name + ".ordering"));
+ if(!orderingIndex.isTrusted())
+ {
+ adminActionRequired = true;
+ messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ orderingIndex.getName()));
+ }
}
else
{
@@ -1618,7 +1629,7 @@
Message message =
NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
- name + ".ordering");
+ orderingIndex.getName());
messages.add(message);
}
}
@@ -1664,10 +1675,12 @@
entryContainer);
approximateIndex.open();
- adminActionRequired = true;
-
- messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
- name + ".approximate"));
+ if(!approximateIndex.isTrusted())
+ {
+ adminActionRequired = true;
+ messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ approximateIndex.getName()));
+ }
}
else
{
@@ -1678,7 +1691,7 @@
Message message =
NOTE_JEB_CONFIG_INDEX_ENTRY_LIMIT_REQUIRES_REBUILD.get(
- name + ".approximate");
+ approximateIndex.getName());
messages.add(message);
}
}
@@ -1760,6 +1773,40 @@
}
/**
+ * Return true iff this index is trusted.
+ * @return the trusted state of this index
+ */
+ public boolean isTrusted()
+ {
+ if (equalityIndex != null && !equalityIndex.isTrusted())
+ {
+ return false;
+ }
+
+ if (presenceIndex != null && !presenceIndex.isTrusted())
+ {
+ return false;
+ }
+
+ if (substringIndex != null && !substringIndex.isTrusted())
+ {
+ return false;
+ }
+
+ if (orderingIndex != null && !orderingIndex.isTrusted())
+ {
+ return false;
+ }
+
+ if (approximateIndex != null && approximateIndex.isTrusted())
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
* Set the rebuild status of this index.
* @param rebuildRunning True if a rebuild process on this index
* is running or False otherwise.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java
index ac18901..4f0cb6e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/EntryContainer.java
@@ -58,6 +58,7 @@
import org.opends.messages.MessageBuilder;
import static org.opends.server.loggers.debug.DebugLogger.*;
import org.opends.server.loggers.debug.DebugTracer;
+import static org.opends.server.loggers.ErrorLogger.logError;
import static org.opends.server.util.ServerConstants.*;
import org.opends.server.admin.std.server.LocalDBBackendCfg;
import org.opends.server.admin.std.server.LocalDBIndexCfg;
@@ -225,6 +226,12 @@
AttributeIndex index =
new AttributeIndex(cfg, state, env, EntryContainer.this);
index.open();
+ if(!index.isTrusted())
+ {
+ adminActionRequired = true;
+ messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ cfg.getAttribute().getNameOrOID()));
+ }
attrIndexMap.put(cfg.getAttribute(), index);
}
catch(Exception e)
@@ -236,9 +243,6 @@
return ccr;
}
- adminActionRequired = true;
- messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
- cfg.getAttribute().getNameOrOID()));
return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired,
messages);
}
@@ -375,6 +379,12 @@
{
VLVIndex vlvIndex = new VLVIndex(cfg, state, env, EntryContainer.this);
vlvIndex.open();
+ if(!vlvIndex.isTrusted())
+ {
+ adminActionRequired = true;
+ messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ cfg.getName()));
+ }
vlvIndexMap.put(cfg.getName().toLowerCase(), vlvIndex);
}
catch(Exception e)
@@ -386,10 +396,6 @@
return ccr;
}
- adminActionRequired = true;
-
- messages.add(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
- cfg.getName()));
return new ConfigChangeResult(ResultCode.SUCCESS, adminActionRequired,
messages);
}
@@ -540,12 +546,25 @@
config.getIndexEntryLimit(), 0, true,
env,this);
id2children.open();
+
+ if(!id2children.isTrusted())
+ {
+ logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ id2children.getName()));
+ }
+
id2subtree = new Index(databasePrefix + "_" + ID2SUBTREE_DATABASE_NAME,
new ID2SIndexer(), state,
config.getIndexEntryLimit(), 0, true,
env, this);
id2subtree.open();
+ if(!id2subtree.isTrusted())
+ {
+ logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ id2subtree.getName()));
+ }
+
dn2uri = new DN2URI(databasePrefix + "_" + REFERRAL_DATABASE_NAME,
env, this);
dn2uri.open();
@@ -554,11 +573,14 @@
{
LocalDBIndexCfg indexCfg = config.getLocalDBIndex(idx);
- //TODO: When issue 1793 is fixed, use inherited default values in
- //admin framework instead for the entry limit.
AttributeIndex index =
new AttributeIndex(indexCfg, state, env, this);
index.open();
+ if(!index.isTrusted())
+ {
+ logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ index.getName()));
+ }
attrIndexMap.put(indexCfg.getAttribute(), index);
}
@@ -568,6 +590,13 @@
VLVIndex vlvIndex = new VLVIndex(vlvIndexCfg, state, env, this);
vlvIndex.open();
+
+ if(!vlvIndex.isTrusted())
+ {
+ logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(
+ vlvIndex.getName()));
+ }
+
vlvIndexMap.put(vlvIndexCfg.getName().toLowerCase(), vlvIndex);
}
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
index d26a70c..c3f01bf 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/Index.java
@@ -181,12 +181,6 @@
setTrusted(null, true);
}
- // Issue warning if this index is not trusted
- if(!trusted)
- {
- logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(name));
- }
-
}
/**
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java
index b6b6fca..0060666 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/VLVIndex.java
@@ -241,12 +241,6 @@
setTrusted(null, true);
}
- // Issue warning if this vlvIndex is not trusted
- if(!trusted)
- {
- logError(NOTE_JEB_INDEX_ADD_REQUIRES_REBUILD.get(name));
- }
-
this.count = new AtomicInteger(0);
this.config.addChangeListener(this);
}
@@ -1512,6 +1506,15 @@
}
/**
+ * Return true iff this index is trusted.
+ * @return the trusted state of this index
+ */
+ public boolean isTrusted()
+ {
+ return trusted;
+ }
+
+ /**
* Set the rebuild status of this vlvIndex.
* @param rebuildRunning True if a rebuild process on this vlvIndex
* is running or False otherwise.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java
index 592fb0b..b7f7687 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/GroupManager.java
@@ -590,7 +590,7 @@
try
{
filter = groupImplementation.getGroupDefinitionFilter();
- if (! backend.isIndexed(filter))
+ if (backend.getEntryCount() > 0 && ! backend.isIndexed(filter))
{
logError(WARN_GROUP_FILTER_NOT_INDEXED.get(String.valueOf(filter),
String.valueOf(configEntryDN), backend.getBackendID()));
--
Gitblit v1.10.0