From ddbdbb48040830ee0487652e1073a0c59825085e Mon Sep 17 00:00:00 2001 From: TienNguyen Date: Wed, 9 Nov 2016 23:11:27 +0700 Subject: [PATCH 1/2] Null checked for source when calling sourceRef (issue #19279) --- .../org/elasticsearch/search/internal/InternalSearchHit.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java b/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java index 072b34d83de4c..d5c4398ba57b9 100644 --- a/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java +++ b/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java @@ -200,6 +200,9 @@ public NestedIdentity getNestedIdentity() { */ @Override public BytesReference sourceRef() { + if (this.source == null) + return null; + try { this.source = CompressorFactory.uncompressIfNeeded(this.source); return this.source; From 9e7bf16b67190462d5de4dcddc4fe72dbd9c3e59 Mon Sep 17 00:00:00 2001 From: TienNguyen Date: Thu, 10 Nov 2016 07:38:04 +0700 Subject: [PATCH 2/2] Update pull request #21431 - add the curly brackets around statement - add unit test for this case --- .../search/internal/InternalSearchHit.java | 5 +++-- .../search/internal/InternalSearchHitTests.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java b/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java index d5c4398ba57b9..ff1195616006c 100644 --- a/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java +++ b/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java @@ -200,9 +200,10 @@ public NestedIdentity getNestedIdentity() { */ @Override public BytesReference sourceRef() { - if (this.source == null) + if (this.source == null) { return null; - + } + try { this.source = CompressorFactory.uncompressIfNeeded(this.source); return this.source; diff --git a/core/src/test/java/org/elasticsearch/search/internal/InternalSearchHitTests.java b/core/src/test/java/org/elasticsearch/search/internal/InternalSearchHitTests.java index 20216e1059349..328e26ff4d587 100644 --- a/core/src/test/java/org/elasticsearch/search/internal/InternalSearchHitTests.java +++ b/core/src/test/java/org/elasticsearch/search/internal/InternalSearchHitTests.java @@ -76,4 +76,15 @@ public void testSerializeShardTarget() throws Exception { assertThat(results.getAt(1).shard(), equalTo(target)); } + public void testNullSource() throws Exception { + InternalSearchHit searchHit = new InternalSearchHit(0, "_id", new Text("_type"), null); + + assertThat(searchHit.source(), nullValue()); + assertThat(searchHit.sourceRef(), nullValue()); + assertThat(searchHit.sourceAsMap(), nullValue()); + assertThat(searchHit.sourceAsString(), nullValue()); + assertThat(searchHit.getSource(), nullValue()); + assertThat(searchHit.getSourceRef(), nullValue()); + assertThat(searchHit.getSourceAsString(), nullValue()); + } }