mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
31.33.2016 558a0bd1b48792629a19185e347ab8f9fe6d47df
OPENDJ-2987 Fix IllegalArgumentException when performing union index queries
1 files modified
15 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQueryFactoryImpl.java 15 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/IndexQueryFactoryImpl.java
@@ -22,6 +22,7 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
@@ -124,16 +125,18 @@
    @Override
    public EntryIDSet evaluate(LocalizableMessageBuilder debugMessage, StringBuilder indexNameOut)
    {
      final EntryIDSet entryIDs = newDefinedSet();
      for (IndexQuery query : subIndexQueries)
      final List<EntryIDSet> candidateSets = new ArrayList<>(subIndexQueries.size());
      for (final IndexQuery query : subIndexQueries)
      {
        entryIDs.addAll(query.evaluate(debugMessage, indexNameOut));
        if (entryIDs.isDefined() && entryIDs.size() >= CURSOR_ENTRY_LIMIT)
        final EntryIDSet set = query.evaluate(debugMessage, indexNameOut);
        if (!set.isDefined())
        {
          break;
          // There is no point continuing.
          return set;
        }
        candidateSets.add(set);
      }
      return entryIDs;
      return newSetFromUnion(candidateSets);
    }
    @Override