Skip to content

Commit d5f0c0d

Browse files
committed
fix #316 no items are instantiated for bulk update response items
1 parent cc68757 commit d5f0c0d

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

Diff for: src/Nest.Tests.Integration/Core/Bulk/BulkUpdateTests.cs

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ public void BulkUpdateObject()
3535
result = this._client.Bulk(descriptor);
3636
result.Should().NotBeNull();
3737
result.IsValid.Should().BeTrue();
38+
result.Items.Count().Should().Be(1000);
39+
result.Items.All(i => i != null).Should().BeTrue();
40+
result.Items.All(i => i.OK).Should().BeTrue();
3841

3942
var updatedObject = this._client.Get<ElasticSearchProject>(5000);
4043
Assert.NotNull(updatedObject);

Diff for: src/Nest/Domain/Responses/BulkUpdateResponseItem.cs

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Nest.Resolvers.Converters;
2+
using Newtonsoft.Json;
3+
4+
namespace Nest
5+
{
6+
[JsonObject]
7+
[JsonConverter(typeof(BulkOperationResponseItemConverter))]
8+
public class BulkUpdateResponseItem : BulkOperationResponseItem
9+
{
10+
public override string Operation { get; internal set; }
11+
[JsonProperty("_index")]
12+
public override string Index { get; internal set; }
13+
[JsonProperty("_type")]
14+
public override string Type { get; internal set; }
15+
[JsonProperty("_id")]
16+
public override string Id { get; internal set; }
17+
[JsonProperty("_version")]
18+
public override string Version { get; internal set; }
19+
[JsonProperty("ok")]
20+
public override bool OK { get; internal set; }
21+
[JsonProperty("error")]
22+
public override string Error { get; internal set; }
23+
}
24+
}

Diff for: src/Nest/Resolvers/Converters/BulkOperationResponseItemConverter.cs

+6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist
2929
if (deleteItem != null)
3030
deleteItem.Operation = key;
3131
return deleteItem;
32+
case "update":
33+
var updateItem = new BulkUpdateResponseItem();
34+
serializer.Populate(prop.Value.CreateReader(), updateItem);
35+
if (updateItem != null)
36+
updateItem.Operation = key;
37+
return updateItem;
3238
case "index":
3339
var indexItem = new BulkIndexResponseItem();
3440
serializer.Populate(prop.Value.CreateReader(), indexItem);

0 commit comments

Comments
 (0)