From c5002b02cd1cb195c202b59a6ded17951fa423dc Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Mon, 04 Mar 2013 08:37:07 +0000
Subject: [PATCH] OPENDJ-769 rebuild-index --clearDegradedState in online mode should not rebuild the index - added support for the clearDegradedState option in online mode.

---
 opends/src/server/org/opends/server/tasks/RebuildTask.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/tasks/RebuildTask.java b/opends/src/server/org/opends/server/tasks/RebuildTask.java
index f5fcba9..dd7f71f 100644
--- a/opends/src/server/org/opends/server/tasks/RebuildTask.java
+++ b/opends/src/server/org/opends/server/tasks/RebuildTask.java
@@ -23,7 +23,7 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
- *      Portions copyright 2012 ForgeRock AS.
+ *      Portions copyright 2012-2013 ForgeRock AS.
  */
 package org.opends.server.tasks;
 import org.opends.messages.Message;
@@ -77,6 +77,7 @@
   ArrayList<String> indexes = null;
   private String tmpDirectory = null;
   private RebuildMode rebuildMode = RebuildMode.USER_DEFINED;
+  boolean isClearDegradedState = false;
 
   /**
    * {@inheritDoc}
@@ -111,6 +112,7 @@
     AttributeType typeBaseDN;
     AttributeType typeIndex;
     AttributeType typeTmpDirectory;
+    AttributeType clearDegradedState;
 
     typeBaseDN =
          getAttributeType(ATTR_REBUILD_BASE_DN, true);
@@ -118,6 +120,8 @@
          getAttributeType(ATTR_REBUILD_INDEX, true);
     typeTmpDirectory =
          getAttributeType(ATTR_REBUILD_TMP_DIRECTORY, true);
+    clearDegradedState =
+        getAttributeType(ATTR_REBUILD_INDEX_CLEARDEGRADEDSTATE, true);
 
     List<Attribute> attrList;
 
@@ -138,6 +142,10 @@
       indexes.clear();
     }
 
+    attrList = taskEntry.getAttribute(clearDegradedState);
+    isClearDegradedState = Boolean.parseBoolean(
+        TaskUtils.getSingleValueString(attrList));
+
     attrList = taskEntry.getAttribute(typeTmpDirectory);
     tmpDirectory = TaskUtils.getSingleValueString(attrList);
 
@@ -184,6 +192,9 @@
       rebuildConfig.addRebuildIndex(index);
     }
 
+    // The degraded state is set(if present in args)
+    // during the initialization.
+    rebuildConfig.isClearDegradedState(isClearDegradedState);
 
     Backend backend =
         DirectoryServer.getBackendWithBaseDN(rebuildConfig.getBaseDN());
@@ -248,6 +259,7 @@
     }
     rebuildConfig.setTmpDirectory(tmpDirectory);
     rebuildConfig.setRebuildMode(rebuildMode);
+
     TaskState returnCode = TaskState.COMPLETED_SUCCESSFULLY;
     // Launch the rebuild process.
     try

--
Gitblit v1.10.0