From 330d842fea904fcdef90c2fad18ccbe39b51181c Mon Sep 17 00:00:00 2001 From: "sadeghpour.nima" Date: Tue, 4 Mar 2025 10:18:50 +0330 Subject: [PATCH] Fix #8340: Prevent null reference exception in SearchResponse - Added null checks for `HitsMetadata` in `SearchResponse.Documents` - Ensured `HitsMetadata` and `Hits` are properly validated before accessing them - Prevented potential crashes when the response contains no hits --- .../_Shared/Api/SearchResponse.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Elastic.Clients.Elasticsearch/_Shared/Api/SearchResponse.cs b/src/Elastic.Clients.Elasticsearch/_Shared/Api/SearchResponse.cs index 22d4cd3920..370e001eba 100644 --- a/src/Elastic.Clients.Elasticsearch/_Shared/Api/SearchResponse.cs +++ b/src/Elastic.Clients.Elasticsearch/_Shared/Api/SearchResponse.cs @@ -2,6 +2,7 @@ // Elasticsearch B.V licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. +using System; using System.Collections.Generic; using System.Linq; using System.Text.Json.Serialization; @@ -11,10 +12,10 @@ namespace Elastic.Clients.Elasticsearch; public partial class SearchResponse { [JsonIgnore] - public IReadOnlyCollection> Hits => HitsMetadata.Hits; + public IReadOnlyCollection> Hits => HitsMetadata?.Hits ?? []; [JsonIgnore] - public IReadOnlyCollection Documents => HitsMetadata.Hits.Select(s => s.Source).ToReadOnlyCollection(); + public IReadOnlyCollection Documents => HitsMetadata?.Hits?.Select(s => s.Source).ToReadOnlyCollection() ?? []; [JsonIgnore] public long Total => HitsMetadata?.Total?.Item1?.Value ?? HitsMetadata?.Total?.Item2 ?? -1;