Skip to content

Commit e15e25d

Browse files
committed
Fix InternalSearchHit#hasSource to return the proper boolean value (#21441)
The method used to be called `isSourceEmpty`, and was renamed to `hasSource`, but the return value never changed. Updated tests and users accordingly. Closes #21419
1 parent 7bc7d2c commit e15e25d

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ public byte[] source() {
252252

253253
@Override
254254
public boolean hasSource() {
255-
return source == null;
255+
return source != null;
256256
}
257257

258258
@Override

core/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ public void testScriptDocAndFields() throws Exception {
293293
assertNoFailures(response);
294294

295295
assertThat(response.getHits().totalHits(), equalTo(3L));
296-
assertThat(response.getHits().getAt(0).hasSource(), equalTo(true));
296+
assertFalse(response.getHits().getAt(0).hasSource());
297297
assertThat(response.getHits().getAt(0).id(), equalTo("1"));
298298
Set<String> fields = new HashSet<>(response.getHits().getAt(0).fields().keySet());
299299
fields.remove(TimestampFieldMapper.NAME); // randomly enabled via templates

core/src/test/java/org/elasticsearch/search/internal/InternalSearchHitTests.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919

2020
package org.elasticsearch.search.internal;
2121

22+
import org.elasticsearch.common.bytes.BytesArray;
2223
import org.elasticsearch.common.io.stream.BytesStreamOutput;
2324
import org.elasticsearch.common.io.stream.InputStreamStreamInput;
2425
import org.elasticsearch.common.text.Text;
2526
import org.elasticsearch.index.Index;
2627
import org.elasticsearch.search.SearchShardTarget;
2728
import org.elasticsearch.test.ESTestCase;
2829

29-
import java.io.ByteArrayInputStream;
3030
import java.io.InputStream;
3131
import java.util.HashMap;
3232
import java.util.Map;
@@ -87,4 +87,11 @@ public void testNullSource() throws Exception {
8787
assertThat(searchHit.getSourceRef(), nullValue());
8888
assertThat(searchHit.getSourceAsString(), nullValue());
8989
}
90+
91+
public void testHasSource() {
92+
InternalSearchHit searchHit = new InternalSearchHit(randomInt());
93+
assertFalse(searchHit.hasSource());
94+
searchHit.sourceRef(new BytesArray("{}"));
95+
assertTrue(searchHit.hasSource());
96+
}
9097
}

modules/reindex/src/main/java/org/elasticsearch/index/reindex/ClientScrollableHitSource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,9 @@ private static class ClientHit implements Hit {
197197
private final SearchHit delegate;
198198
private final BytesReference source;
199199

200-
public ClientHit(SearchHit delegate) {
200+
ClientHit(SearchHit delegate) {
201201
this.delegate = delegate;
202-
source = delegate.hasSource() ? null : delegate.getSourceRef();
202+
source = delegate.hasSource() ? delegate.getSourceRef() : null;
203203
}
204204

205205
@Override

0 commit comments

Comments
 (0)