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/persistit/PersistItStorage.java | 22 +++-------------------
1 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java b/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
index d1ddb79..b06bd13 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
@@ -286,7 +286,6 @@
private final class CursorImpl implements Cursor {
private final Exchange ex;
- private boolean useCurrentKeyForNext = false;
private ByteString currentKey;
private ByteString currentValue;
@@ -305,10 +304,8 @@
bytesToKey(ex.getKey(), key);
try {
ex.fetch();
- useCurrentKeyForNext = ex.getValue().isDefined();
- return useCurrentKeyForNext;
+ return ex.getValue().isDefined();
} catch (PersistitException e) {
- useCurrentKeyForNext = false;
throw new StorageRuntimeException(e);
}
}
@@ -319,15 +316,8 @@
bytesToKey(ex.getKey(), key);
try {
ex.fetch();
- if (ex.getValue().isDefined()) {
- useCurrentKeyForNext = true;
- } else {
- // provided key does not exist, look for next key
- useCurrentKeyForNext = ex.next();
- }
- return useCurrentKeyForNext;
+ return ex.getValue().isDefined() || ex.next();
} catch (PersistitException e) {
- useCurrentKeyForNext = false;
throw new StorageRuntimeException(e);
}
}
@@ -337,10 +327,8 @@
try {
clearCurrentKeyAndValue();
ex.getKey().to(Key.AFTER);
- useCurrentKeyForNext = ex.previous() && ex.getValue().isDefined();
- return useCurrentKeyForNext;
+ return ex.previous();
} catch (PersistitException e) {
- useCurrentKeyForNext = false;
throw new StorageRuntimeException(e);
}
}
@@ -348,10 +336,6 @@
@Override
public boolean next() {
clearCurrentKeyAndValue();
- if (useCurrentKeyForNext) {
- useCurrentKeyForNext = false;
- return true;
- }
try {
return ex.next();
} catch (PersistitException e) {
--
Gitblit v1.10.0