From 583613ae94d73e8044bc401008b16b22d23db865 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 08 Apr 2009 10:21:29 +0000
Subject: [PATCH] Fix for issue 2764 (ldapsearch: "--countEntries" option, the number of matching entries should not be used as return code) --This line, and th se below, will be ignored--

---
 opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java                                 |   34 ++++++++++++++++++++++++++++++----
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java |   21 +++++++++++----------
 2 files changed, 41 insertions(+), 14 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
index a123fed..2d029e8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPSearch.java
@@ -553,7 +553,7 @@
 
   public static void main(String[] args)
   {
-    int retCode = mainSearch(args, true, System.out, System.err);
+    int retCode = mainSearch(args, true, false, System.out, System.err);
 
     if(retCode != 0)
     {
@@ -572,7 +572,7 @@
 
   public static int mainSearch(String[] args)
   {
-    return mainSearch(args, true, System.out, System.err);
+    return mainSearch(args, true, true, System.out, System.err);
   }
 
   /**
@@ -591,10 +591,36 @@
    *
    * @return The error code.
    */
-
   public static int mainSearch(String[] args, boolean initializeServer,
                                OutputStream outStream, OutputStream errStream)
   {
+    return mainSearch(args, initializeServer, true, outStream, errStream);
+  }
+
+  /**
+   * Parses the provided command-line arguments and uses that information to
+   * run the ldapsearch tool.
+   *
+   * @param  args              The command-line arguments provided to this
+   *                           program.
+   * @param  initializeServer  Indicates whether to initialize the server.
+   * @param  returnMatchingEntries whether when the option --countEntries is
+   *                           specified, the number of matching entries should
+   *                           be returned or not.
+   * @param  outStream         The output stream to use for standard output, or
+   *                           <CODE>null</CODE> if standard output is not
+   *                           needed.
+   * @param  errStream         The output stream to use for standard error, or
+   *                           <CODE>null</CODE> if standard error is not
+   *                           needed.
+   *
+   * @return The error code.
+   */
+
+  public static int mainSearch(String[] args, boolean initializeServer,
+      boolean returnMatchingEntries, OutputStream outStream,
+      OutputStream errStream)
+  {
     PrintStream out;
     if (outStream == null)
     {
@@ -1759,7 +1785,7 @@
                                                    searchOptions, wrapColumn);
       }
 
-      if (countEntries.isPresent())
+      if (countEntries.isPresent() && returnMatchingEntries)
       {
         return matchingEntries;
       }
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
index b385a40..09f93a0 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/tools/LDAPSearchTestCase.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.tools;
 
@@ -75,12 +75,12 @@
          throws Exception
   {
     TestCaseUtils.startServer();
-    
+
     TestCaseUtils.dsconfig(
             "set-sasl-mechanism-handler-prop",
             "--handler-name", "DIGEST-MD5",
             "--set", "server-fqdn:" + "127.0.0.1");
-    
+
     File pwFile = File.createTempFile("valid-bind-password-", ".txt");
     pwFile.deleteOnExit();
     FileWriter fileWriter = new FileWriter(pwFile);
@@ -99,7 +99,7 @@
 
   @AfterClass
   public void tearDown() throws Exception {
-   
+
     TestCaseUtils.dsconfig(
             "set-sasl-mechanism-handler-prop",
             "--handler-name", "DIGEST-MD5",
@@ -1642,7 +1642,7 @@
       "(objectClass=*)"
     };
 
-    assertEquals(LDAPSearch.mainSearch(args, false, null, System.err), 1);
+    assertEquals(LDAPSearch.mainSearch(args, false, true, null, System.err), 1);
 
     args = new String[]
     {
@@ -1658,7 +1658,7 @@
       "(objectClass=*)"
     };
 
-    assertEquals(LDAPSearch.mainSearch(args, false, null, System.err), 2);
+    assertEquals(LDAPSearch.mainSearch(args, false, true, null, System.err), 2);
 
     args = new String[]
     {
@@ -1674,7 +1674,7 @@
       "(objectClass=*)"
     };
 
-    assertEquals(LDAPSearch.mainSearch(args, false, null, System.err), 2);
+    assertEquals(LDAPSearch.mainSearch(args, false, true, null, System.err), 2);
   }
 
 
@@ -1761,7 +1761,7 @@
       "(objectClass=*)"
     };
 
-    assertEquals(LDAPSearch.mainSearch(args, false, null, System.err), 5);
+    assertEquals(LDAPSearch.mainSearch(args, false, true, null, System.err), 5);
   }
 
 
@@ -1900,8 +1900,9 @@
       "(objectClass=*)"
     };
 
-    assertEquals(LDAPSearch.mainSearch(pagedArgs, false, null, System.err),
-                 LDAPSearch.mainSearch(unpagedArgs, false, null, System.err));
+    assertEquals(
+        LDAPSearch.mainSearch(pagedArgs, false, true, null, System.err),
+        LDAPSearch.mainSearch(unpagedArgs, false, true, null, System.err));
   }
 
 

--
Gitblit v1.10.0