From 7a7824c45f9d392827cd931fa11a1c071cef218b Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Wed, 01 Jul 2015 14:39:33 +0000
Subject: [PATCH] OPENDJ-2189: Empty EntryIDSet are kept rather than deleted.

---
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java    |    5 +++++
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DefaultIndex.java |    3 +--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DefaultIndex.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DefaultIndex.java
index c28ba83..30bb629 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DefaultIndex.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DefaultIndex.java
@@ -236,13 +236,12 @@
         if (oldValue != null)
         {
           EntryIDSet entryIDSet = computeEntryIDSet(key, oldValue.toByteString(), deletedIDs, addedIDs);
-          ByteString after = toValue(entryIDSet);
           /*
            * If there are no more IDs then return null indicating that the record should be removed.
            * If index is not trusted then this will cause all subsequent reads for this key to
            * return undefined set.
            */
-          return after.isEmpty() ? null : after;
+          return entryIDSet.size() == 0 ? null : toValue(entryIDSet);
         }
         else if (trusted)
         {
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java
index 390c0de..9274412 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VerifyJob.java
@@ -684,6 +684,11 @@
         try
         {
           entryIDSet = cursor.getValue();
+          if (entryIDSet.size() == 0)
+          {
+            errorCount++;
+            logger.trace("Empty ID list: %n%s", keyDump(index.toString(), key));
+          }
         }
         catch (Exception e)
         {

--
Gitblit v1.10.0