From db02e3b120abd8f5e090c3f60b4a4b92508db504 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 22 Dec 2014 11:19:12 +0000
Subject: [PATCH] Fix OPENDJ-1709: Persistit: ldapsearch returns second entry twice

---
 opendj3-server-dev/src/server/org/opends/server/backends/pluggable/Index.java |   18 ++++--------------
 1 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/Index.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/Index.java
index 7d32ac7..a40cdaf 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/Index.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/Index.java
@@ -511,41 +511,31 @@
       Cursor cursor = txn.openCursor(treeName);
       try
       {
-        ByteSequence key = ByteString.empty();
         boolean success;
         // Set the lower bound if necessary.
         if (lower.length() > 0)
         {
           // Initialize the cursor to the lower bound.
-          key = lower;
-          success = cursor.positionToKeyOrNext(key);
+          success = cursor.positionToKeyOrNext(lower);
 
           // Advance past the lower bound if necessary.
           if (success
               && !lowerIncluded
-              && ByteSequence.COMPARATOR.compare(key, lower) == 0)
+              && ByteSequence.COMPARATOR.compare(cursor.getKey(), lower) == 0)
           {
             // Do not include the lower value.
             success = cursor.next();
-            if (success)
-            {
-              key = cursor.getKey();
-            }
           }
         }
         else
         {
           success = cursor.next();
-          if (success)
-          {
-            key = cursor.getKey();
-          }
         }
 
         if (!success)
         {
           // There are no values.
-          return new EntryIDSet(key, null);
+          return new EntryIDSet(lowerIncluded ? lower : null, null);
         }
 
         // Step through the keys until we hit the upper bound or the last key.
@@ -560,7 +550,7 @@
               break;
             }
           }
-          EntryIDSet list = new EntryIDSet(key, cursor.getValue());
+          EntryIDSet list = new EntryIDSet(cursor.getKey(), cursor.getValue());
           if (!list.isDefined())
           {
             // There is no point continuing.

--
Gitblit v1.10.0