Skip to content

Commit c5a97df

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

File tree

3 files changed

+34
-10
lines changed

3 files changed

+34
-10
lines changed

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s
4747
d[UpdatableIndexSettings.TranslogFlushThresholdPeriod] = flush?.ThresholdPeriod;
4848
d[UpdatableIndexSettings.TranslogInterval] = flush?.Interval;
4949

50-
d[UpdatableIndexSettings.MergePolicyExpungeDeletesAllowed] = ds.Merge?.Policy.ExpungeDeletesAllowed;
51-
d[UpdatableIndexSettings.MergePolicyFloorSegment] = ds.Merge?.Policy.FloorSegment;
52-
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnce] = ds.Merge?.Policy.MaxMergeAtOnce;
53-
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnceExplicit] = ds.Merge?.Policy.MaxMergeAtOnceExplicit;
54-
d[UpdatableIndexSettings.MergePolicyMaxMergedSegment] = ds.Merge?.Policy.MaxMergedSegment;
55-
d[UpdatableIndexSettings.MergePolicySegmentsPerTier] = ds.Merge?.Policy.SegmentsPerTier;
56-
d[UpdatableIndexSettings.MergePolicyReclaimDeletesWeight] = ds.Merge?.Policy.ReclaimDeletesWeight;
50+
d[UpdatableIndexSettings.MergePolicyExpungeDeletesAllowed] = ds.Merge?.Policy?.ExpungeDeletesAllowed;
51+
d[UpdatableIndexSettings.MergePolicyFloorSegment] = ds.Merge?.Policy?.FloorSegment;
52+
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnce] = ds.Merge?.Policy?.MaxMergeAtOnce;
53+
d[UpdatableIndexSettings.MergePolicyMaxMergeAtOnceExplicit] = ds.Merge?.Policy?.MaxMergeAtOnceExplicit;
54+
d[UpdatableIndexSettings.MergePolicyMaxMergedSegment] = ds.Merge?.Policy?.MaxMergedSegment;
55+
d[UpdatableIndexSettings.MergePolicySegmentsPerTier] = ds.Merge?.Policy?.SegmentsPerTier;
56+
d[UpdatableIndexSettings.MergePolicyReclaimDeletesWeight] = ds.Merge?.Policy?.ReclaimDeletesWeight;
5757

5858
d[UpdatableIndexSettings.MergeSchedulerMaxThreadCount] = ds.Merge?.Scheduler?.MaxThreadCount;
5959
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: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,12 @@
660660
<Compile Include="Reproduce\CovariantSearchDateParsing.cs" />
661661
<Compile Include="Reproduce\GithubIssue2306.cs" />
662662
<Compile Include="Reproduce\GithubIssue2309.cs" />
663+
<Compile Include="Reproduce\GithubIssue2323.cs" />
664+
<Compile Include="Reproduce\GithubIssue2503.cs" />
665+
<Compile Include="Reproduce\GithubIssue2690.cs" />
666+
<Compile Include="Search\Hits\HitsSerializationTests.cs" />
667+
<Compile Include="Search\MultiSearch\MultiSearchApiTests.cs" />
668+
<Compile Include="Search\MultiSearch\MultiSearchInvalidApiTests.cs" />
663669
<Compile Include="Framework\Extensions\UriExtensions.cs" />
664670
<Compile Include="Framework\VirtualClustering\WaitingInMemoryConnection.cs" />
665671
<Compile Include="Framework\Xunit\ForEachAsyncExtensions.cs" />
@@ -683,9 +689,6 @@
683689
<Compile Include="Reproduce\GithubIssue2052.cs" />
684690
<Compile Include="Reproduce\GithubIssue2173.cs" />
685691
<Compile Include="Reproduce\DateSerialization.cs" />
686-
<Compile Include="Reproduce\GithubIssue2323.cs" />
687-
<Compile Include="Reproduce\GithubIssue2503.cs" />
688-
<Compile Include="Search\Hits\HitsSerializationTests.cs" />
689692
<Compile Include="Search\Search\Rescoring\RescoreUsageTests.cs" />
690693
<Compile Include="Search\Search\InvalidSearchApiTests.cs" />
691694
<Compile Include="Search\Search\SearchProfileTests.cs" />

0 commit comments

Comments
 (0)