From 46dd8ed88bd5f1968ff09aa36d64667c1547aa19 Mon Sep 17 00:00:00 2001 From: Maryam Ariyan Date: Thu, 27 Aug 2020 10:33:18 -0700 Subject: [PATCH] Fix ArgumentNullException when using minimum json file (#41428) --- .../src/JsonConfigurationFileParser.cs | 2 +- .../tests/IntegrationTest.cs | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs b/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs index 4029c92..87d54df 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs @@ -55,7 +55,7 @@ namespace Microsoft.Extensions.Configuration.Json ExitContext(); } - if (isEmpty) + if (isEmpty && _currentPath != null) { _data[_currentPath] = null; } diff --git a/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs b/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs index b206e31..778872f 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs @@ -12,6 +12,21 @@ namespace Microsoft.Extensions.Configuration.Json.Test public class IntegrationTest { [Fact] + public void MinimalJson_GetChildrenFromConfiguration_NoConfigurationSection() + { + var json = @"{ + }"; + + var configurationBuilder = new ConfigurationBuilder(); + configurationBuilder.AddJsonStream(TestStreamHelpers.StringToStream(json)); + var configuration = configurationBuilder.Build(); + + Assert.Collection(configuration.GetChildren(), + new Action[] { + }); + } + + [Fact] public void LoadJsonConfiguration() { var json = @"{ -- 2.7.4