Skip to content

Commit b314150

Browse files
committed
Fix #2690: NRE in IndexSettingsConverter when merge policy isn't set (#2692)
1 parent d750cad commit b314150

File tree

3 files changed

+29
-7
lines changed

3 files changed

+29
-7
lines changed

src/Nest/IndexModules/IndexSettings/Settings/IndexSettingsConverter.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
4141
d[UpdatableIndexSettings.TranslogFlushThresholdSize] = flush?.ThresholdSize;
4242
d[UpdatableIndexSettings.TranslogFlushThresholdPeriod] = flush?.ThresholdPeriod;
4343

44-
d[UpdatableIndexSettings.MergePolicyExpungeDeletesAllowed] = ds.Merge?.Policy.ExpungeDeletesAllowed;
45-
d[UpdatableIndexSettings.MergePolicyFloorSegment] = ds.Merge?.Policy.FloorSegment;
46-
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnce] = ds.Merge?.Policy.MaxMergeAtOnce;
47-
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnceExplicit] = ds.Merge?.Policy.MaxMergeAtOnceExplicit;
48-
d[UpdatableIndexSettings.MergePolicyMaxMergedSegment] = ds.Merge?.Policy.MaxMergedSegment;
49-
d[UpdatableIndexSettings.MergePolicySegmentsPerTier] = ds.Merge?.Policy.SegmentsPerTier;
50-
d[UpdatableIndexSettings.MergePolicyReclaimDeletesWeight] = ds.Merge?.Policy.ReclaimDeletesWeight;
44+
d[UpdatableIndexSettings.MergePolicyExpungeDeletesAllowed] = ds.Merge?.Policy?.ExpungeDeletesAllowed;
45+
d[UpdatableIndexSettings.MergePolicyFloorSegment] = ds.Merge?.Policy?.FloorSegment;
46+
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnce] = ds.Merge?.Policy?.MaxMergeAtOnce;
47+
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnceExplicit] = ds.Merge?.Policy?.MaxMergeAtOnceExplicit;
48+
d[UpdatableIndexSettings.MergePolicyMaxMergedSegment] = ds.Merge?.Policy?.MaxMergedSegment;
49+
d[UpdatableIndexSettings.MergePolicySegmentsPerTier] = ds.Merge?.Policy?.SegmentsPerTier;
50+
d[UpdatableIndexSettings.MergePolicyReclaimDeletesWeight] = ds.Merge?.Policy?.ReclaimDeletesWeight;
5151

5252
d[UpdatableIndexSettings.MergeSchedulerMaxThreadCount] = ds.Merge?.Scheduler?.MaxThreadCount;
5353
d[UpdatableIndexSettings.MergeSchedulerAutoThrottle] = ds.Merge?.Scheduler?.AutoThrottle;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using FluentAssertions;
2+
using Tests.Framework;
3+
4+
namespace Tests.Reproduce
5+
{
6+
public class GithubIssue2690
7+
{
8+
[U] public void EmptyPolicyCausesNullReferenceException()
9+
{
10+
var client = TestClient.GetInMemoryClient();
11+
var response = client.CreateIndex("foo", c => c
12+
.Settings(s => s
13+
.Merge(m => m
14+
.Scheduler(sch => sch.MaxThreadCount(1))
15+
)
16+
)
17+
);
18+
response.IsValid.Should().BeTrue();
19+
}
20+
}
21+
}

src/Tests/Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,7 @@
726726
<Compile Include="Reproduce\GithubIssue2323.cs" />
727727
<Compile Include="Reproduce\GithubIssue2409.cs" />
728728
<Compile Include="Reproduce\GithubIssue2503.cs" />
729+
<Compile Include="Reproduce\GithubIssue2690.cs" />
729730
<Compile Include="Search\Hits\HitsSerializationTests.cs" />
730731
<Compile Include="Search\MultiSearch\MultiSearchApiTests.cs" />
731732
<Compile Include="Search\MultiSearch\MultiSearchInvalidApiTests.cs" />

0 commit comments

Comments
 (0)