From c652314f4886517e73f2d1d0f8815067d2dfa727 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 25 Mar 2009 23:10:55 +0000
Subject: [PATCH] Fix for issue 2616 (ldapsearch: error parsing command-line arguments)

---
 opends/src/server/org/opends/server/tools/LDAPSearch.java |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/LDAPSearch.java b/opends/src/server/org/opends/server/tools/LDAPSearch.java
index 7fa294b..28b7e16 100644
--- a/opends/src/server/org/opends/server/tools/LDAPSearch.java
+++ b/opends/src/server/org/opends/server/tools/LDAPSearch.java
@@ -44,6 +44,7 @@
 import org.opends.server.util.args.BooleanArgument;
 import org.opends.server.util.args.FileBasedArgument;
 import org.opends.server.util.args.IntegerArgument;
+import org.opends.server.util.args.MultiChoiceArgument;
 import org.opends.server.util.args.StringArgument;
 import org.opends.server.protocols.asn1.ASN1Exception;
 import org.opends.server.protocols.ldap.LDAPAttribute;
@@ -657,7 +658,7 @@
     StringArgument    proxyAuthzID             = null;
     StringArgument    pSearchInfo              = null;
     StringArgument    saslOptions              = null;
-    StringArgument    searchScope              = null;
+    MultiChoiceArgument searchScope              = null;
     StringArgument    sortOrder                = null;
     StringArgument    trustStorePath           = null;
     StringArgument    trustStorePassword       = null;
@@ -748,11 +749,18 @@
       baseDN.setPropertyName(OPTION_LONG_BASEDN);
       argParser.addArgument(baseDN);
 
-      searchScope = new StringArgument(
+      HashSet<String> allowedScopes = new HashSet<String>();
+      allowedScopes.add("base");
+      allowedScopes.add("one");
+      allowedScopes.add("sub");
+      allowedScopes.add("subordinate");
+      searchScope = new MultiChoiceArgument(
               "searchScope", 's', "searchScope", false,
-              false, true, INFO_SEARCH_SCOPE_PLACEHOLDER.get(), null, null,
+              true, INFO_SEARCH_SCOPE_PLACEHOLDER.get(), allowedScopes,
+              false,
               INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE.get());
       searchScope.setPropertyName("searchScope");
+      searchScope.setDefaultValue("sub");
       argParser.addArgument(searchScope);
 
       filename = new StringArgument("filename", OPTION_SHORT_FILENAME,
@@ -1043,7 +1051,6 @@
     }
     catch (ArgumentException ae)
     {
-
       Message message = ERR_ERROR_PARSING_ARGS.get(ae.getMessage());
 
       err.println(wrapText(message, MAX_LINE_WIDTH));

--
Gitblit v1.10.0