Skip to content

Commit 7063588

Browse files
mauschgmarz
authored andcommitted
Fix NullReferenceException in AggregationsHelper
when bucket is not available in aggregations.
1 parent e8f1bbb commit 7063588

File tree

1 file changed

+34
-16
lines changed

1 file changed

+34
-16
lines changed

src/Nest/Domain/Aggregations/AggregationsHelper.cs

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,9 @@ public SingleBucket ReverseNested(string key)
113113

114114
public BucketWithDocCount<SignificantTermItem> SignificantTerms(string key)
115115
{
116-
var bucket = this.TryGet<BucketWithDocCount>(key);
116+
var bucket = this.TryGet<BucketWithDocCount>(key);
117+
if (bucket == null)
118+
return null;
117119
var b = new BucketWithDocCount<SignificantTermItem>();
118120
b.DocCount = bucket.DocCount;
119121
b.Items = bucket.Items.OfType<SignificantTermItem>().ToList();
@@ -122,16 +124,20 @@ public BucketWithDocCount<SignificantTermItem> SignificantTerms(string key)
122124

123125
public Bucket<KeyItem> Terms(string key)
124126
{
125-
var bucket = this.TryGet<Bucket>(key);
127+
var bucket = this.TryGet<Bucket>(key);
128+
if (bucket == null)
129+
return null;
126130
var b = new Bucket<KeyItem>();
127131
b.Items = bucket.Items.OfType<KeyItem>().ToList();
128132
return b;
129133
}
130134

131135
public Bucket<HistogramItem> Histogram(string key)
132136
{
133-
var bucket = this.TryGet<Bucket>(key);
134-
var b = new Bucket<HistogramItem>();
137+
var bucket = this.TryGet<Bucket>(key);
138+
if (bucket == null)
139+
return null;
140+
var b = new Bucket<HistogramItem>();
135141
b.Items = bucket.Items.OfType<HistogramItem>()
136142
.Concat<HistogramItem>(bucket.Items.OfType<KeyItem>()
137143
.Select(x =>
@@ -149,48 +155,60 @@ public Bucket<HistogramItem> Histogram(string key)
149155

150156
public Bucket<KeyItem> GeoHash(string key)
151157
{
152-
var bucket = this.TryGet<Bucket>(key);
153-
var b = new Bucket<KeyItem>();
158+
var bucket = this.TryGet<Bucket>(key);
159+
if (bucket == null)
160+
return null;
161+
var b = new Bucket<KeyItem>();
154162
b.Items = bucket.Items.OfType<KeyItem>().ToList();
155163
return b;
156164
}
157165

158166
public Bucket<RangeItem> Range(string key)
159167
{
160-
var bucket = this.TryGet<Bucket>(key);
161-
var b = new Bucket<RangeItem>();
168+
var bucket = this.TryGet<Bucket>(key);
169+
if (bucket == null)
170+
return null;
171+
var b = new Bucket<RangeItem>();
162172
b.Items = bucket.Items.OfType<RangeItem>().ToList();
163173
return b;
164174
}
165175

166176
public Bucket<RangeItem> DateRange(string key)
167177
{
168-
var bucket = this.TryGet<Bucket>(key);
169-
var b = new Bucket<RangeItem>();
178+
var bucket = this.TryGet<Bucket>(key);
179+
if (bucket == null)
180+
return null;
181+
var b = new Bucket<RangeItem>();
170182
b.Items = bucket.Items.OfType<RangeItem>().ToList();
171183
return b;
172184
}
173185

174186
public Bucket<RangeItem> IpRange(string key)
175187
{
176-
var bucket = this.TryGet<Bucket>(key);
177-
var b = new Bucket<RangeItem>();
188+
var bucket = this.TryGet<Bucket>(key);
189+
if (bucket == null)
190+
return null;
191+
var b = new Bucket<RangeItem>();
178192
b.Items = bucket.Items.OfType<RangeItem>().ToList();
179193
return b;
180194
}
181195

182196
public Bucket<RangeItem> GeoDistance(string key)
183197
{
184-
var bucket = this.TryGet<Bucket>(key);
185-
var b = new Bucket<RangeItem>();
198+
var bucket = this.TryGet<Bucket>(key);
199+
if (bucket == null)
200+
return null;
201+
var b = new Bucket<RangeItem>();
186202
b.Items = bucket.Items.OfType<RangeItem>().ToList();
187203
return b;
188204
}
189205

190206
public Bucket<HistogramItem> DateHistogram(string key)
191207
{
192-
var bucket = this.TryGet<Bucket>(key);
193-
var b = new Bucket<HistogramItem>();
208+
var bucket = this.TryGet<Bucket>(key);
209+
if (bucket == null)
210+
return null;
211+
var b = new Bucket<HistogramItem>();
194212
b.Items = bucket.Items.OfType<HistogramItem>().ToList();
195213
return b;
196214
}

0 commit comments

Comments
 (0)