浏览代码

Fix random failures in SearchResponseMerger#testMergeSearchHits (#40223)

This commit fixes the expectation in the test when the search hits are empty.

Closes #40214
Jim Ferenczi 6 年之前
父节点
当前提交
a71c94df2c
共有 1 个文件被更改,包括 11 次插入4 次删除
  1. 11 4
      server/src/test/java/org/elasticsearch/action/search/SearchResponseMergerTests.java

+ 11 - 4
server/src/test/java/org/elasticsearch/action/search/SearchResponseMergerTests.java

@@ -396,7 +396,6 @@ public class SearchResponseMergerTests extends ESTestCase {
         assertEquals(totalCount, bucket.getDocCount());
     }
 
-    @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/40214")
     public void testMergeSearchHits() throws InterruptedException {
         final long currentRelativeTime = randomLong();
         final SearchTimeProvider timeProvider = new SearchTimeProvider(randomLong(), 0, () -> currentRelativeTime);
@@ -513,8 +512,14 @@ public class SearchResponseMergerTests extends ESTestCase {
         assertNull(searchResponse.getScrollId());
 
         SearchHits searchHits = searchResponse.getHits();
-        assertArrayEquals(sortFields, searchHits.getSortFields());
-        assertEquals(collapseField, searchHits.getCollapseField());
+        // the sort fields and the collapse field are not returned when hits are empty
+        if (searchHits.getHits().length > 0) {
+            assertArrayEquals(sortFields, searchHits.getSortFields());
+            assertEquals(collapseField, searchHits.getCollapseField());
+        } else {
+            assertNull(searchHits.getSortFields());
+            assertNull(searchHits.getCollapseField());
+        }
         if (expectedTotalHits == null) {
             assertNull(searchHits.getTotalHits());
         } else {
@@ -532,7 +537,9 @@ public class SearchResponseMergerTests extends ESTestCase {
             priorityQueue.poll();
         }
         SearchHit[] hits = searchHits.getHits();
-        if (collapseField != null) {
+        if (collapseField != null
+                // the collapse field is not returned when hits are empty
+                && hits.length > 0) {
             assertEquals(hits.length, searchHits.getCollapseValues().length);
         } else {
             assertNull(searchHits.getCollapseValues());