Skip to content

Commit f6f13d8

Browse files
author
Ashkan Daie
committed
Fixed other potential JSON.NET deserialization of DateTime property values
1 parent 2132664 commit f6f13d8

File tree

4 files changed

+17
-25
lines changed

4 files changed

+17
-25
lines changed

src/Nest/Resolvers/Converters/Aggregations/AggregationConverter.cs

+6-10
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,7 @@ private IAggregation GetStatsAggregation(JsonReader reader, JsonSerializer seria
199199

200200
private IAggregation GetDateHistogramAggregation(JsonReader reader, JsonSerializer serializer)
201201
{
202-
reader.Read();
203-
var keyAsString = reader.Value as string;
202+
var keyAsString = reader.ReadAsString();
204203
reader.Read(); reader.Read();
205204
var key = (reader.Value as long?).GetValueOrDefault(0);
206205
reader.Read(); reader.Read();
@@ -215,21 +214,19 @@ private IAggregation GetDateHistogramAggregation(JsonReader reader, JsonSerializ
215214

216215
private IAggregation GetKeyedBucketItem(JsonReader reader, JsonSerializer serializer)
217216
{
218-
reader.Read();
219-
var key = reader.Value;
217+
var key = reader.ReadAsString();
220218
reader.Read();
221219
var property = reader.Value as string;
222220
if (property == "from" || property == "to")
223-
return GetRangeAggregation(reader, serializer, key.ToString());
221+
return GetRangeAggregation(reader, serializer, key);
224222

225223

226224
var keyItem = new KeyItem();
227-
keyItem.Key = key.ToString();
225+
keyItem.Key = key;
228226

229227
if (property == "key_as_string")
230228
{
231-
reader.Read();
232-
keyItem.KeyAsString = reader.Value.ToString();
229+
keyItem.KeyAsString = reader.ReadAsString();
233230
reader.Read();
234231
}
235232

@@ -361,8 +358,7 @@ public IAggregation GetRangeAggregation(JsonReader reader, JsonSerializer serial
361358
reader.Read();
362359
break;
363360
case "key":
364-
reader.Read();
365-
key = reader.Value as string;
361+
key = reader.ReadAsString();
366362
reader.Read();
367363
break;
368364
case "from_as_string":

src/Nest/Resolvers/Converters/FieldNameQueryConverter.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
4242
var depth = reader.Depth;
4343
if (reader.TokenType != JsonToken.StartObject)
4444
return null;
45-
reader.Read();
46-
var fieldName = reader.Value as string;
45+
var fieldName = reader.ReadAsString();
4746
reader.Read();
4847
var query = this._reader.ReadJson(reader, objectType, existingValue, serializer);
4948
var setter = query as IFieldNameQuery;

src/Nest/Resolvers/Converters/Filters/GeoBoundingFilterConverter.cs

+3-6
Original file line numberDiff line numberDiff line change
@@ -79,16 +79,13 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
7979
f.Cache = reader.Value as bool?;
8080
break;
8181
case "_name":
82-
reader.Read();
83-
f.FilterName = reader.Value as string;
82+
f.FilterName = reader.ReadAsString();
8483
break;
8584
case "_cache_key":
86-
reader.Read();
87-
f.CacheKey = reader.Value as string;
85+
f.CacheKey = reader.ReadAsString();
8886
break;
8987
case "type":
90-
reader.Read();
91-
f.GeoExecution = (reader.Value as string).ToEnum<GeoExecution>();
88+
f.GeoExecution = reader.ReadAsString().ToEnum<GeoExecution>();
9289
break;
9390
default:
9491
f.Field = property;

src/Tests/Nest.Tests.Integration/Aggregations/ParseResponseItemsTests.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,16 @@ public void DateRangeItem()
185185
firstRange.Should().NotBeNull();
186186
firstRange.To.Should().HaveValue();
187187
firstRange.ToAsString.Should().NotBeNull();
188-
var firstRangeToDateLeft = firstRange.To.Value.JavaTimeStampToDateTime();
189-
var firstRangeToDateRight = DateTime.Parse(firstRange.ToAsString);
190-
firstRangeToDateLeft.Should().Be(firstRangeToDateRight);
191-
var lastRange = grams.LastOrDefault();
188+
var firstRangeToDateLeft = firstRange.To.Value.JavaTimeStampToDateTime();
189+
var firstRangeToDateRight = DateTime.Parse(firstRange.ToAsString);
190+
firstRangeToDateLeft.Should().Be(firstRangeToDateRight);
191+
var lastRange = grams.LastOrDefault();
192192
lastRange.Should().NotBeNull();
193193
lastRange.From.Should().HaveValue();
194194
lastRange.FromAsString.Should().NotBeNull();
195-
var LastRangeFromDateLeft = lastRange.From.Value.JavaTimeStampToDateTime();
196-
var LastRangeFromDateRight = DateTime.Parse(lastRange.FromAsString);
197-
LastRangeFromDateLeft.Should().Be(LastRangeFromDateRight);
195+
var lastRangeFromDateLeft = lastRange.From.Value.JavaTimeStampToDateTime();
196+
var lastRangeFromDateRight = DateTime.Parse(lastRange.FromAsString);
197+
lastRangeFromDateLeft.Should().Be(lastRangeFromDateRight);
198198
}
199199
[Test]
200200
public void IpRangeItem()

0 commit comments

Comments
 (0)