From 3724b434eb990830cf76e18908c4ca6b9d5a08db Mon Sep 17 00:00:00 2001 From: Maryam Ariyan Date: Wed, 26 Aug 2020 23:07:05 -0700 Subject: [PATCH] Fix ArgumentNullException when using minimum json file --- .../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 4029c922504fdf..87d54dfb4fd68d 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 @@ private void VisitElement(JsonElement element) 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 b206e3180033a2..778872ff131a2e 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Json/tests/IntegrationTest.cs @@ -11,6 +11,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() {