From 00bc759fabe809563e9425ae196ec60ba7d61fb4 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <ylecaillez@forgerock.com>
Date: Mon, 12 Oct 2015 13:29:03 +0000
Subject: [PATCH] OPENDJ-2331: rebuild-index should fail when rebuilding a non-existing index

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
index 19e34b0..0c96c4d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
@@ -303,7 +303,7 @@
     }
 
     private static final Set<String> selectIndexesToRebuild(EntryContainer entryContainer, RebuildConfig rebuildConfig,
-        long totalEntries)
+        long totalEntries) throws InitializationException
     {
       final SelectIndexName selector = new SelectIndexName();
       switch (rebuildConfig.getRebuildMode())
@@ -318,6 +318,13 @@
         break;
       case USER_DEFINED:
         visitIndexes(entryContainer, visitOnlyAttributesOrIndexes(rebuildConfig.getRebuildList(), selector));
+        final Set<String> indexesToRebuild = selector.getSelectedIndexNames();
+        if (!indexesToRebuild.containsAll(rebuildConfig.getRebuildList()))
+        {
+          final Set<String> unknownIndexes = new HashSet<>(rebuildConfig.getRebuildList());
+          unknownIndexes.removeAll(indexesToRebuild);
+          throw new InitializationException(ERR_ATTRIBUTE_INDEX_NOT_CONFIGURED.get(unknownIndexes.iterator().next()));
+        }
         if (!rebuildConfig.isClearDegradedState())
         {
           logger.info(NOTE_REBUILD_START, Utils.joinAsString(", ", selector.getSelectedIndexNames()), totalEntries);

--
Gitblit v1.10.0