From 65e3293e0a58e31471ddaadfc137dad3bb9b239b Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 23 Mar 2015 10:12:49 +0000
Subject: [PATCH] Ensured IndexQuery.evaluate() never returns null + updated javadoc to mention it. Client code assumes that the returned value will never be null anyway.

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQuery.java |   24 +++++-------------------
 1 files changed, 5 insertions(+), 19 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQuery.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQuery.java
index 8d9a6ce..d7d757a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQuery.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQuery.java
@@ -52,7 +52,7 @@
    * @param debugMessage If not null, diagnostic message will be written
    *                      which will help to determine why the returned
    *                      EntryIDSet is not defined.
-   * @return The EntryIDSet as a result of evaluation of this query.
+   * @return The non null EntryIDSet as a result of evaluating this query
    */
   public abstract EntryIDSet evaluate(LocalizableMessageBuilder debugMessage);
 
@@ -136,17 +136,10 @@
     @Override
     public EntryIDSet evaluate(LocalizableMessageBuilder debugMessage)
     {
-      EntryIDSet entryIDs = null;
+      final EntryIDSet entryIDs = newUndefinedSet();
       for (IndexQuery query : subIndexQueries)
       {
-        if (entryIDs == null)
-        {
-          entryIDs = query.evaluate(debugMessage);
-        }
-        else
-        {
-          entryIDs.retainAll(query.evaluate(debugMessage));
-        }
+        entryIDs.retainAll(query.evaluate(debugMessage));
         if (isBelowFilterThreshold(entryIDs))
         {
           break;
@@ -182,17 +175,10 @@
     @Override
     public EntryIDSet evaluate(LocalizableMessageBuilder debugMessage)
     {
-      EntryIDSet entryIDs = null;
+      final EntryIDSet entryIDs = newDefinedSet();
       for (IndexQuery query : subIndexQueries)
       {
-        if (entryIDs == null)
-        {
-          entryIDs = query.evaluate(debugMessage);
-        }
-        else
-        {
-          entryIDs.addAll(query.evaluate(debugMessage));
-        }
+        entryIDs.addAll(query.evaluate(debugMessage));
         if (entryIDs.isDefined() && entryIDs.size() >= CURSOR_ENTRY_LIMIT)
         {
           break;

--
Gitblit v1.10.0