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

Jean-Noel Rouvignac
26.01.2015 c5d246665c8d72aa524009a12af556f8fba76fe4
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ImportIDSet.java
@@ -42,6 +42,7 @@
 * the configured ID limit. If the limit it reached, the class stops tracking
 * individual IDs and marks the set as undefined. This class is not thread safe.
 */
@SuppressWarnings("javadoc")
final class ImportIDSet implements Iterable<EntryID> {
  /** The encapsulated entryIDSet where elements are stored until reaching the limit. */
@@ -127,18 +128,23 @@
  boolean merge(ImportIDSet importIdSet)
  {
    checkNotNull(importIdSet, "importIdSet must not be null");
    return merge(importIdSet.entryIDSet);
  }
    boolean definedBeforeMerge = isDefined();
    final long mergedSize = addWithoutOverflow(entryIDSet.size(), importIdSet.entryIDSet.size());
  boolean merge(EntryIDSet entryIDSet)
  {
    checkNotNull(entryIDSet, "entryID must not be null");
    boolean definedBeforeMerge = this.entryIDSet.isDefined();
    final long mergedSize = addWithoutOverflow(this.entryIDSet.size(), entryIDSet.size());
    if (!definedBeforeMerge || !importIdSet.isDefined() || mergedSize > indexEntryLimitSize)
    if (!definedBeforeMerge || !entryIDSet.isDefined() || mergedSize > indexEntryLimitSize)
    {
      entryIDSet = newUndefinedSetWithKey(key);
      this.entryIDSet = newUndefinedSetWithKey(key);
      return definedBeforeMerge;
    }
    else if (isDefined())
    else if (this.entryIDSet.isDefined())
    {
      entryIDSet.addAll(importIdSet.entryIDSet);
      this.entryIDSet.addAll(entryIDSet);
    }
    return false;
  }