Skip to content

Commit 261e21a

Browse files
committed
[TEST] Fix NPE in ElasticsearchIntegrationTest if no indexer is provided
Closes #9907
1 parent b05f5eb commit 261e21a

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/test/java/org/elasticsearch/test/ElasticsearchIntegrationTest.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@
129129
import java.util.*;
130130
import java.util.concurrent.*;
131131
import java.util.concurrent.atomic.AtomicInteger;
132+
import java.util.concurrent.atomic.AtomicLong;
132133

133134
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_REPLICAS;
134135
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_SHARDS;
@@ -991,35 +992,37 @@ public long waitForDocs(final long numDocs, final @Nullable BackgroundIndexer in
991992
*/
992993
public long waitForDocs(final long numDocs, int maxWaitTime, TimeUnit maxWaitTimeUnit, final @Nullable BackgroundIndexer indexer)
993994
throws InterruptedException {
994-
final long[] lastKnownCount = {-1};
995+
final AtomicLong lastKnownCount = new AtomicLong(-1);
995996
long lastStartCount = -1;
996997
Predicate<Object> testDocs = new Predicate<Object>() {
997998
@Override
998999
public boolean apply(Object o) {
999-
lastKnownCount[0] = indexer.totalIndexedDocs();
1000-
if (lastKnownCount[0] >= numDocs) {
1000+
if (indexer != null) {
1001+
lastKnownCount.set(indexer.totalIndexedDocs());
1002+
}
1003+
if (lastKnownCount.get() >= numDocs) {
10011004
long count = client().prepareCount().setQuery(matchAllQuery()).execute().actionGet().getCount();
1002-
if (count == lastKnownCount[0]) {
1005+
if (count == lastKnownCount.get()) {
10031006
// no progress - try to refresh for the next time
10041007
client().admin().indices().prepareRefresh().get();
10051008
}
1006-
lastKnownCount[0] = count;
1007-
logger.debug("[{}] docs visible for search. waiting for [{}]", lastKnownCount[0], numDocs);
1009+
lastKnownCount.set(count);
1010+
logger.debug("[{}] docs visible for search. waiting for [{}]", lastKnownCount.get(), numDocs);
10081011
} else {
1009-
logger.debug("[{}] docs indexed. waiting for [{}]", lastKnownCount[0], numDocs);
1012+
logger.debug("[{}] docs indexed. waiting for [{}]", lastKnownCount.get(), numDocs);
10101013
}
1011-
return lastKnownCount[0] >= numDocs;
1014+
return lastKnownCount.get() >= numDocs;
10121015
}
10131016
};
10141017

10151018
while (!awaitBusy(testDocs, maxWaitTime, maxWaitTimeUnit)) {
1016-
if (lastStartCount == lastKnownCount[0]) {
1019+
if (lastStartCount == lastKnownCount.get()) {
10171020
// we didn't make any progress
10181021
fail("failed to reach " + numDocs + "docs");
10191022
}
1020-
lastStartCount = lastKnownCount[0];
1023+
lastStartCount = lastKnownCount.get();
10211024
}
1022-
return lastKnownCount[0];
1025+
return lastKnownCount.get();
10231026
}
10241027

10251028

0 commit comments

Comments
 (0)