From 8ce2ccf4110c3847927334138646795dfe50acce Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 22 Dec 2014 23:13:32 +0000
Subject: [PATCH] OPENDJ-1710: NPE performing deletes and potentially other indexed updates against Persistit backend
---
opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DN2URI.java | 17 ++++-------------
1 files changed, 4 insertions(+), 13 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DN2URI.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DN2URI.java
index 34d8cc5..d25e7ec 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DN2URI.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/DN2URI.java
@@ -580,7 +580,6 @@
suffix.append((byte) 0x00);
end.append((byte) 0x01);
- ByteSequence startKey = suffix;
try
{
final Cursor cursor = txn.openCursor(treeName);
@@ -588,23 +587,15 @@
{
// Initialize the cursor very close to the starting value then
// step forward until we pass the ending value.
- boolean success = cursor.positionToKey(startKey);
- while (success)
+ boolean success = cursor.positionToKey(suffix);
+ while (success && cursor.getKey().compareTo(end) < 0)
{
- ByteString key = cursor.getKey();
- int cmp = ByteSequence.COMPARATOR.compare(key, end);
- if (cmp >= 0)
- {
- // We have gone past the ending value.
- break;
- }
-
// We have found a subordinate referral.
- DN dn = JebFormat.dnFromDNKey(key, entryContainer.getBaseDN());
+ DN dn = JebFormat.dnFromDNKey(cursor.getKey(), entryContainer.getBaseDN());
// Make sure the referral is within scope.
if (searchOp.getScope() == SearchScope.SINGLE_LEVEL
- && JebFormat.findDNKeyParent(key) != baseDN.length())
+ && JebFormat.findDNKeyParent(cursor.getKey()) != baseDN.length())
{
continue;
}
--
Gitblit v1.10.0