Skip to content

Commit 19e30cc

Browse files
committed
[TEST] Fix NPE in ElasticsearchIntegrationTest if no indexer is provided
Closes #9907
1 parent 8881045 commit 19e30cc

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
@@ -133,6 +133,7 @@
133133
import java.util.*;
134134
import java.util.concurrent.*;
135135
import java.util.concurrent.atomic.AtomicInteger;
136+
import java.util.concurrent.atomic.AtomicLong;
136137

137138
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_REPLICAS;
138139
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_SHARDS;
@@ -1021,34 +1022,36 @@ public long waitForDocs(final long numDocs, final @Nullable BackgroundIndexer in
10211022
*/
10221023
public long waitForDocs(final long numDocs, int maxWaitTime, TimeUnit maxWaitTimeUnit, final @Nullable BackgroundIndexer indexer)
10231024
throws InterruptedException {
1024-
final long[] lastKnownCount = {-1};
1025+
final AtomicLong lastKnownCount = new AtomicLong(-1);
10251026
long lastStartCount = -1;
10261027
Predicate<Object> testDocs = new Predicate<Object>() {
10271028
public boolean apply(Object o) {
1028-
lastKnownCount[0] = indexer.totalIndexedDocs();
1029-
if (lastKnownCount[0] >= numDocs) {
1029+
if (indexer != null) {
1030+
lastKnownCount.set(indexer.totalIndexedDocs());
1031+
}
1032+
if (lastKnownCount.get() >= numDocs) {
10301033
long count = client().prepareCount().setQuery(matchAllQuery()).execute().actionGet().getCount();
1031-
if (count == lastKnownCount[0]) {
1034+
if (count == lastKnownCount.get()) {
10321035
// no progress - try to refresh for the next time
10331036
client().admin().indices().prepareRefresh().get();
10341037
}
1035-
lastKnownCount[0] = count;
1036-
logger.debug("[{}] docs visible for search. waiting for [{}]", lastKnownCount[0], numDocs);
1038+
lastKnownCount.set(count);
1039+
logger.debug("[{}] docs visible for search. waiting for [{}]", lastKnownCount.get(), numDocs);
10371040
} else {
1038-
logger.debug("[{}] docs indexed. waiting for [{}]", lastKnownCount[0], numDocs);
1041+
logger.debug("[{}] docs indexed. waiting for [{}]", lastKnownCount.get(), numDocs);
10391042
}
1040-
return lastKnownCount[0] >= numDocs;
1043+
return lastKnownCount.get() >= numDocs;
10411044
}
10421045
};
10431046

10441047
while (!awaitBusy(testDocs, maxWaitTime, maxWaitTimeUnit)) {
1045-
if (lastStartCount == lastKnownCount[0]) {
1048+
if (lastStartCount == lastKnownCount.get()) {
10461049
// we didn't make any progress
10471050
fail("failed to reach " + numDocs + "docs");
10481051
}
1049-
lastStartCount = lastKnownCount[0];
1052+
lastStartCount = lastKnownCount.get();
10501053
}
1051-
return lastKnownCount[0];
1054+
return lastKnownCount.get();
10521055
}
10531056

10541057

0 commit comments

Comments
 (0)