From 334fa0a1bbf2e529f296842cbee5b24f9ff70f31 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Fri, 17 Apr 2015 08:54:14 +0000
Subject: [PATCH] OPENDJ-1929 Use SearchScope API in control panel

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewVLVIndexPanel.java          |   14 +-
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java    |    4 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexTableModel.java |   41 +++++-----
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java          |    5 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java             |   33 ++++---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java     |   19 ++--
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexDescriptor.java |  118 ++++++++++++++++++++++++++++-
 7 files changed, 174 insertions(+), 60 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexDescriptor.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexDescriptor.java
index 3959259..02fd0db 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexDescriptor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexDescriptor.java
@@ -30,7 +30,9 @@
 import java.util.Collections;
 import java.util.List;
 
-import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope;
+import org.forgerock.opendj.ldap.SearchScope;
+import org.opends.server.admin.std.meta.BackendVLVIndexCfgDefn;
+import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn;
 import org.opends.server.types.DN;
 
 /**
@@ -39,7 +41,7 @@
 public class VLVIndexDescriptor extends AbstractIndexDescriptor
 {
   private final DN baseDN;
-  private final Scope scope;
+  private final SearchScope scope;
   private final String filter;
   private List<VLVSortOrder> sortOrder = Collections.emptyList();
   private final int maxBlockSize;
@@ -63,7 +65,7 @@
    * @param maxBlockSize
    *          the maximum block size of the VLV index.
    */
-  public VLVIndexDescriptor(String name, BackendDescriptor backend, DN baseDN, Scope scope, String filter,
+  public VLVIndexDescriptor(String name, BackendDescriptor backend, DN baseDN, SearchScope scope, String filter,
       List<VLVSortOrder> sortOrder, int maxBlockSize)
   {
     super(name, backend);
@@ -113,7 +115,7 @@
    *
    * @return the scope of the search indexed by the VLV index.
    */
-  public Scope getScope()
+  public SearchScope getScope()
   {
     return scope;
   }
@@ -184,4 +186,112 @@
     return maxBlockSize;
   }
 
+  /**
+   * Returns the equivalent {@code BackendVLVIndexCfgDefn.Scope} to the provided
+   * search scope.
+   *
+   * @param scope
+   *          The {@code SearchScope} to convert.
+   * @return the equivalent {@code BackendVLVIndexCfgDefn.Scope} to the provided
+   *         search scope.
+   */
+  public static BackendVLVIndexCfgDefn.Scope getPluggableBackendVLVIndexScope(final SearchScope scope)
+  {
+    switch (scope.asEnum())
+    {
+    case BASE_OBJECT:
+      return BackendVLVIndexCfgDefn.Scope.BASE_OBJECT;
+    case SINGLE_LEVEL:
+      return BackendVLVIndexCfgDefn.Scope.SINGLE_LEVEL;
+    case SUBORDINATES:
+      return BackendVLVIndexCfgDefn.Scope.SUBORDINATE_SUBTREE;
+    case WHOLE_SUBTREE:
+      return BackendVLVIndexCfgDefn.Scope.WHOLE_SUBTREE;
+    case UNKNOWN:
+    default:
+      throw new IllegalArgumentException("Unsupported SearchScope: " + scope);
+    }
+  }
+
+  // FIXME: Remove once local-db backend will be pluggable.
+  /**
+   * Returns the equivalent {@code LocalDBVLVIndexCfgDefn.Scope} to the provided
+   * search scope.
+   *
+   * @param scope
+   *          The {@code SearchScope} to convert.
+   * @return the equivalent {@code LocalDBVLVIndexCfgDefn.Scope} to the provided
+   *         search scope.
+   */
+  public static LocalDBVLVIndexCfgDefn.Scope getLocalDBVLVIndexScope(final SearchScope scope)
+  {
+    switch (scope.asEnum())
+    {
+    case BASE_OBJECT:
+      return LocalDBVLVIndexCfgDefn.Scope.BASE_OBJECT;
+    case SINGLE_LEVEL:
+      return LocalDBVLVIndexCfgDefn.Scope.SINGLE_LEVEL;
+    case SUBORDINATES:
+      return LocalDBVLVIndexCfgDefn.Scope.SUBORDINATE_SUBTREE;
+    case WHOLE_SUBTREE:
+      return LocalDBVLVIndexCfgDefn.Scope.WHOLE_SUBTREE;
+    case UNKNOWN:
+    default:
+      throw new IllegalArgumentException("Unsupported SearchScope: " + scope);
+    }
+  }
+
+  /**
+   * Convert the provided {@code BackendVLVIndexCfgDefn.Scope} to
+   * {@code SearchScope}.
+   *
+   * @param scope
+   *          The scope to convert.
+   * @return the provided {@code BackendVLVIndexCfgDefn.Scope} to
+   *         {@code SearchScope}
+   */
+  public static SearchScope toSearchScope(final BackendVLVIndexCfgDefn.Scope scope)
+  {
+    switch (scope)
+    {
+    case BASE_OBJECT:
+      return SearchScope.BASE_OBJECT;
+    case SINGLE_LEVEL:
+      return SearchScope.SINGLE_LEVEL;
+    case SUBORDINATE_SUBTREE:
+      return SearchScope.SUBORDINATES;
+    case WHOLE_SUBTREE:
+      return SearchScope.WHOLE_SUBTREE;
+    default:
+      throw new IllegalArgumentException("Unsupported BackendVLVIndexCfgDefn.Scope: " + scope);
+    }
+  }
+
+  // FIXME: Remove once local-db backend will be pluggable.
+  /**
+   * Convert the provided {@code LocalDBVLVIndexCfgDefn.Scope} to
+   * {@code SearchScope}.
+   *
+   * @param scope
+   *          The scope to convert.
+   * @return the provided {@code LocalDBVLVIndexCfgDefn.Scope} to
+   *         {@code SearchScope}
+   */
+  public static SearchScope toSearchScope(final LocalDBVLVIndexCfgDefn.Scope scope)
+  {
+    switch (scope)
+    {
+    case BASE_OBJECT:
+      return SearchScope.BASE_OBJECT;
+    case SINGLE_LEVEL:
+      return SearchScope.SINGLE_LEVEL;
+    case SUBORDINATE_SUBTREE:
+      return SearchScope.SUBORDINATES;
+    case WHOLE_SUBTREE:
+      return SearchScope.WHOLE_SUBTREE;
+    default:
+      throw new IllegalArgumentException("Unsupported LocalDBVLVIndexCfgDefn.Scope: " + scope);
+    }
+  }
+
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexTableModel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexTableModel.java
index 5a3d617..8c8a3ce 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexTableModel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/VLVIndexTableModel.java
@@ -29,6 +29,7 @@
 
 import static org.opends.messages.AdminToolMessages.*;
 
+import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.guitools.controlpanel.util.Utilities;
 
 /**
@@ -114,43 +115,41 @@
   }
 
   /**
-   * Returns the VLV index scope value in String format.  This is the value used
+   * Returns the VLV index scope value in String format. This is the value used
    * to make String comparisons.
-   * @param i the VLV index.
+   *
+   * @param scope
+   *          the VLV index.
    * @return the VLV index scope value in String format.
    */
-  private String getScopeStringValue(VLVIndexDescriptor i)
+  private String toUIString(final SearchScope scope)
   {
-    String s;
-    switch (i.getScope())
+    switch (scope.asEnum())
     {
     case BASE_OBJECT:
-      s = "Base Object";
-      break;
+      return INFO_CTRL_PANEL_VLV_INDEX_BASE_OBJECT_LABEL.get().toString();
     case SINGLE_LEVEL:
-      s = "Single Level";
-      break;
+      return INFO_CTRL_PANEL_VLV_INDEX_SINGLE_LEVEL_LABEL.get().toString();
+    case SUBORDINATES:
+      return INFO_CTRL_PANEL_VLV_INDEX_SUBORDINATE_SUBTREE_LABEL.get().toString();
     case WHOLE_SUBTREE:
-      s = "Whole Subtree";
-      break;
-    case SUBORDINATE_SUBTREE:
-      s = "Subordinate Subtree";
-      break;
+      return INFO_CTRL_PANEL_VLV_INDEX_WHOLE_SUBTREE_LABEL.get().toString();
     default:
-      throw new RuntimeException("Unknown scope: "+i.getScope());
+      throw new IllegalArgumentException("Unknown scope: " + scope);
     }
-    return s;
   }
 
   /**
-   * Returns the VLV index scope display value in String format.  This is the
+   * Returns the VLV index scope display value in String format. This is the
    * value to be stored in the table model.
-   * @param i the VLV index.
+   *
+   * @param i
+   *          the VLV index.
    * @return the VLV index DN value in String format.
    */
-  private String getScopeDisplayValue(VLVIndexDescriptor i)
+  private String getScopeDisplayValue(final VLVIndexDescriptor i)
   {
-    return "<html>"+getScopeStringValue(i);
+    return "<html>" + toUIString(i.getScope());
   }
 
   /**
@@ -205,7 +204,7 @@
 
   private int compareScopes(VLVIndexDescriptor i1, VLVIndexDescriptor i2)
   {
-    return getScopeStringValue(i1).compareTo(getScopeStringValue(i2));
+    return toUIString(i1.getScope()).compareTo(toUIString(i2.getScope()));
   }
 
   private int compareFilters(VLVIndexDescriptor i1, VLVIndexDescriptor i2)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java
index d958fa3..dd36296 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java
@@ -61,6 +61,7 @@
 import javax.swing.event.ListSelectionListener;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
 import org.opends.guitools.controlpanel.datamodel.BaseDNDescriptor;
 import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
@@ -77,7 +78,6 @@
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.server.admin.DefinedDefaultBehaviorProvider;
 import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn;
-import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope;
 import org.opends.server.protocols.ldap.LDAPFilter;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.DN;
@@ -251,6 +251,7 @@
     lines.add("ds-cfg-filter: " + filter.getText().trim());
     lines.add("ds-cfg-sort-order: " + getSortOrderStringValue(getSortOrder()));
     lines.add("ds-cfg-base-dn: " + getBaseDN());
+    lines.add("ds-cfg-scope: " + VLVIndexDescriptor.getLocalDBVLVIndexScope(getScope()));
     lines.add("ds-cfg-max-block-size: " + maxBlockSize.getText().trim());
     StringBuilder sb = new StringBuilder();
     for (String line : lines)
@@ -266,26 +267,26 @@
    *
    * @return the scope of the VLV index as it appears on the panel.
    */
-  protected Scope getScope()
+  protected SearchScope getScope()
   {
-    Scope scope;
     if (baseObject.isSelected())
     {
-      scope = Scope.BASE_OBJECT;
+      return SearchScope.BASE_OBJECT;
     }
     else if (singleLevel.isSelected())
     {
-      scope = Scope.SINGLE_LEVEL;
+      return SearchScope.SINGLE_LEVEL;
     }
     else if (subordinateSubtree.isSelected())
     {
-      scope = Scope.SUBORDINATE_SUBTREE;
+      return SearchScope.SUBORDINATES;
     }
-    else
+    else if (wholeSubtree.isSelected())
     {
-      scope = Scope.WHOLE_SUBTREE;
+      return SearchScope.WHOLE_SUBTREE;
     }
-    return scope;
+
+    throw new IllegalStateException("At least one scope should be selected");
   }
 
   /**
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewVLVIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewVLVIndexPanel.java
index 7a541fd..5e4b575 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewVLVIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewVLVIndexPanel.java
@@ -44,6 +44,7 @@
 import javax.swing.SwingUtilities;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
 import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
 import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
@@ -60,7 +61,6 @@
 import org.opends.server.admin.std.client.LocalDBVLVIndexCfgClient;
 import org.opends.server.admin.std.client.RootCfgClient;
 import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn;
-import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.DN;
 import org.opends.server.types.DirectoryException;
@@ -165,7 +165,7 @@
   {
     private final Set<String> backendSet;
     private final String indexName;
-    private final Scope scope;
+    private final SearchScope searchScope;
     private final List<VLVSortOrder> sortOrder;
     private final String baseDN;
     private final String filterValue;
@@ -192,7 +192,7 @@
       sortOrder = getSortOrder();
       baseDN = getBaseDN();
       filterValue = filter.getText().trim();
-      scope = getScope();
+      searchScope = getScope();
       backendID = backendName.getText();
       ldif = getIndexLDIF(indexName);
       sortOrderStringValue = getSortOrderStringValue(sortOrder);
@@ -363,7 +363,7 @@
       index.setFilter(filter.getText().trim());
       index.setSortOrder(getSortOrderStringValue(getSortOrder()));
       index.setBaseDN(DN.valueOf(getBaseDN()));
-      index.setScope(getScope());
+      index.setScope(VLVIndexDescriptor.getLocalDBVLVIndexScope(getScope()));
       index.setMaxBlockSize(Integer.parseInt(maxBlockSize.getText().trim()));
       index.commit();
     }
@@ -405,8 +405,8 @@
         {
           if (backend.getBackendID().equalsIgnoreCase(backendID))
           {
-            newIndex =
-               new VLVIndexDescriptor(indexName, backend, DN.valueOf(baseDN), scope, filterValue, sortOrder, maxBlock);
+            newIndex = new VLVIndexDescriptor(
+                indexName, backend, DN.valueOf(baseDN), searchScope, filterValue, sortOrder, maxBlock);
             getInfo().registerModifiedIndex(newIndex);
             notifyConfigurationElementCreated(newIndex);
             break;
@@ -449,7 +449,7 @@
       args.add("filter:" + filterValue);
 
       args.add("--set");
-      args.add("scope:" + scope);
+      args.add("scope:" + VLVIndexDescriptor.getLocalDBVLVIndexScope(searchScope));
 
       args.add("--set");
       args.add("sort-order:" + sortOrderStringValue);
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java
index 8a99932..fa8f10b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java
@@ -60,6 +60,9 @@
 import javax.swing.event.ListDataEvent;
 import javax.swing.event.ListDataListener;
 
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor;
 import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
 import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
@@ -73,15 +76,12 @@
 import org.opends.guitools.controlpanel.task.Task;
 import org.opends.guitools.controlpanel.util.ConfigReader;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.server.admin.client.ManagementContext;
 import org.opends.server.admin.client.ldap.JNDIDirContextAdaptor;
 import org.opends.server.admin.client.ldap.LDAPManagementContext;
 import org.opends.server.admin.std.client.LocalDBBackendCfgClient;
 import org.opends.server.admin.std.client.LocalDBVLVIndexCfgClient;
 import org.opends.server.admin.std.client.RootCfgClient;
-import org.opends.server.admin.std.meta.LocalDBVLVIndexCfgDefn.Scope;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.DN;
 import org.opends.server.types.Entry;
@@ -456,7 +456,8 @@
       baseDN.setText(dn);
       baseDNs.setSelectedItem(OTHER_BASE_DN);
     }
-    selectScopeRadioButton(index);
+
+    selectScopeRadioButton(index.getScope());
     filter.setText(index.getFilter());
 
     // Simulate a remove to update the attribute combo box and add them again.
@@ -509,9 +510,9 @@
     scrollListener.updateBorder();
   }
 
-  private void selectScopeRadioButton(final VLVIndexDescriptor index)
+  private void selectScopeRadioButton(final SearchScope indexScope)
   {
-    switch (index.getScope())
+    switch (indexScope.asEnum())
     {
     case BASE_OBJECT:
       baseObject.setSelected(true);
@@ -519,12 +520,14 @@
     case SINGLE_LEVEL:
       singleLevel.setSelected(true);
       break;
-    case SUBORDINATE_SUBTREE:
+    case SUBORDINATES:
       subordinateSubtree.setSelected(true);
       break;
     case WHOLE_SUBTREE:
       wholeSubtree.setSelected(true);
       break;
+    default:
+      break;
     }
   }
 
@@ -532,7 +535,7 @@
   {
     try
     {
-      return !index.getBaseDN().equals(DN.valueOf(getBaseDN())) || index.getScope() != getScope()
+      return !index.getBaseDN().equals(DN.valueOf(getBaseDN())) || !index.getScope().equals(getScope())
           || !index.getFilter().equals(filter.getText().trim()) || !index.getSortOrder().equals(getSortOrder())
           || !Integer.toString(index.getMaxBlockSize()).equals(maxBlockSize.getText().trim());
     }
@@ -552,7 +555,7 @@
     private final String indexName;
     private final String baseDN;
     private final String filterValue;
-    private final Scope scope;
+    private final SearchScope searchScope;
     private final List<VLVSortOrder> sortOrder;
     private final String backendID;
     private final String sortOrderStringValue;
@@ -579,7 +582,7 @@
       sortOrder = getSortOrder();
       baseDN = getBaseDN();
       filterValue = filter.getText().trim();
-      scope = getScope();
+      searchScope = getScope();
       sortOrderStringValue = getSortOrderStringValue(sortOrder);
       ldif = getIndexLDIF(indexName);
       maxBlock = Integer.parseInt(maxBlockSize.getText());
@@ -754,9 +757,9 @@
         index.setFilter(filterValue);
       }
 
-      if (indexToModify.getScope() != scope)
+      if (indexToModify.getScope() != searchScope)
       {
-        index.setScope(scope);
+        index.setScope(VLVIndexDescriptor.getLocalDBVLVIndexScope(searchScope));
       }
 
       if (!indexToModify.getSortOrder().equals(sortOrder))
@@ -797,7 +800,7 @@
       {
         updateConfiguration();
         modifiedIndex =
-            new VLVIndexDescriptor(indexName, indexToModify.getBackend(), DN.valueOf(baseDN), scope, filterValue,
+            new VLVIndexDescriptor(indexName, indexToModify.getBackend(), DN.valueOf(baseDN), searchScope, filterValue,
                 sortOrder, maxBlock);
         getInfo().registerModifiedIndex(modifiedIndex);
         state = State.FINISHED_SUCCESSFULLY;
@@ -842,10 +845,10 @@
         throw new RuntimeException("Unexpected error parsing DN " + getBaseDN() + ": " + odse, odse);
       }
 
-      if (indexToModify.getScope() != scope)
+      if (indexToModify.getScope() != searchScope)
       {
         args.add("--set");
-        args.add("scope:" + scope);
+        args.add("scope:" + VLVIndexDescriptor.getLocalDBVLVIndexScope(searchScope));
       }
       if (!indexToModify.getFilter().equals(filterValue))
       {
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
index 0adca9a..8d994e0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
@@ -501,8 +501,8 @@
         String s = index.getSortOrder();
         List<VLVSortOrder> sortOrder = getVLVSortOrder(s);
         vlvIndexes.add(new VLVIndexDescriptor(
-            index.getName(), null, index.getBaseDN(), index.getScope(), index.getFilter(),
-            sortOrder, index.getMaxBlockSize()));
+            index.getName(), null, index.getBaseDN(), VLVIndexDescriptor.toSearchScope(index.getScope()),
+            index.getFilter(), sortOrder, index.getMaxBlockSize()));
       }
     }
     catch (OpenDsException oe)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
index 2baf4a7..373dd5a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
@@ -255,8 +255,9 @@
               final LocalDBVLVIndexCfg index = db.getLocalDBVLVIndex(vlvIndexName);
               final String s = index.getSortOrder();
               final List<VLVSortOrder> sortOrder = getVLVSortOrder(s);
-              vlvIndexes.add(new VLVIndexDescriptor(index.getName(), null, index.getBaseDN(),
-                  index.getScope(), index.getFilter(), sortOrder, index.getMaxBlockSize()));
+              vlvIndexes.add(new VLVIndexDescriptor(
+                  index.getName(), null, index.getBaseDN(), VLVIndexDescriptor.toSearchScope(index.getScope()),
+                  index.getFilter(), sortOrder, index.getMaxBlockSize()));
             }
           }
           catch (final ConfigException ce)

--
Gitblit v1.10.0