Skip to content

Commit bf8911e

Browse files
committed
Bool Filter fails with ArrayIndexOutOfBoundsException, closes elastic#1419.
1 parent 7b22cc9 commit bf8911e

File tree

1 file changed

+6
-5
lines changed
  • modules/elasticsearch/src/main/java/org/elasticsearch/common/lucene/docset

1 file changed

+6
-5
lines changed

modules/elasticsearch/src/main/java/org/elasticsearch/common/lucene/docset/DocSets.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,15 @@ public static void and(FixedBitSet into, DocIdSet other) throws IOException {
7979
if (disi == null) {
8080
into.clear(0, into.length());
8181
} else {
82-
int bitSetDoc = into.nextSetBit(0);
83-
int disiDoc;
84-
while (bitSetDoc != -1 && (disiDoc = disi.advance(bitSetDoc)) != DocIdSetIterator.NO_MORE_DOCS) {
82+
int numBits = into.length();
83+
int disiDoc, bitSetDoc = into.nextSetBit(0);
84+
while (bitSetDoc != -1 && (disiDoc = disi.advance(bitSetDoc)) < numBits) {
8585
into.clear(bitSetDoc, disiDoc);
86-
bitSetDoc = into.nextSetBit(disiDoc + 1);
86+
disiDoc++;
87+
bitSetDoc = (disiDoc < numBits) ? into.nextSetBit(disiDoc) : -1;
8788
}
8889
if (bitSetDoc != -1) {
89-
into.clear(bitSetDoc, into.length());
90+
into.clear(bitSetDoc, numBits);
9091
}
9192
}
9293
}

0 commit comments

Comments
 (0)