From 6d132ecfd1f8df75c9aef812297b09873726c69b Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Mon, 09 Nov 2009 14:06:17 +0000
Subject: [PATCH] The index state was being set erroneously when the --rebuildAll flag was not specified. Issue 4293.
---
opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java | 63 ++++++++++++++++++++++++++++++-
1 files changed, 61 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
index 818e39c..86841d3 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -2685,6 +2685,7 @@
new LinkedHashMap<IndexKey, Index>();
private final Map<IndexKey, Collection<Index>> extensibleIndexMap =
new LinkedHashMap<IndexKey, Collection<Index>>();
+ private final List<VLVIndex> vlvIndexes = new LinkedList<VLVIndex>();
private DN2ID dn2id = null;
private DN2URI dn2uri = null;
private long totalEntries =0;
@@ -2816,10 +2817,67 @@
{
processPhaseOne();
processPhaseTwo();
- setIndexesTrusted();
+ if(rebuildAll)
+ {
+ setAllIndexesTrusted();
+ }
+ else
+ {
+ setRebuildListIndexesTrusted();
+ }
}
- private void setIndexesTrusted() throws JebException
+ private void setRebuildListIndexesTrusted() throws JebException
+ {
+ try
+ {
+ if(dn2id != null)
+ {
+ EntryContainer ec = suffix.getEntryContainer();
+ ec.getID2Children().setTrusted(null,true);
+ ec.getID2Subtree().setTrusted(null, true);
+ }
+ if(!indexMap.isEmpty())
+ {
+ for(Map.Entry<IndexKey, Index> mapEntry : indexMap.entrySet()) {
+ Index index = mapEntry.getValue();
+ index.setTrusted(null, true);
+ }
+ }
+ if(!vlvIndexes.isEmpty())
+ {
+ for(VLVIndex vlvIndex : vlvIndexes)
+ {
+ vlvIndex.setTrusted(null, true);
+ }
+ }
+ if(!extensibleIndexMap.isEmpty())
+ {
+ Collection<Index> subIndexes =
+ extensibleIndexMap.get(EXTENSIBLE_INDEXER_ID_SUBSTRING);
+ if(subIndexes != null) {
+ for(Index subIndex : subIndexes) {
+ subIndex.setTrusted(null, true);
+ }
+ }
+ Collection<Index> sharedIndexes =
+ extensibleIndexMap.get(EXTENSIBLE_INDEXER_ID_SHARED);
+ if(sharedIndexes !=null) {
+ for(Index sharedIndex : sharedIndexes) {
+ sharedIndex.setTrusted(null, true);
+ }
+ }
+ }
+ }
+ catch (DatabaseException ex)
+ {
+ Message message =
+ NOTE_JEB_IMPORT_LDIF_TRUSTED_FAILED.get(ex.getMessage());
+ throw new JebException(message);
+ }
+ }
+
+ private void setAllIndexesTrusted() throws JebException
{
try {
suffix.setIndexesTrusted();
@@ -3240,6 +3298,7 @@
{
VLVIndex vlvIndex = ec.getVLVIndex(name);
ec.clearDatabase(vlvIndex);
+ vlvIndexes.add(vlvIndex);
}
private void clearDN2URI(EntryContainer ec) throws DatabaseException
--
Gitblit v1.10.0