From c6d28f01a8d2afba588b265529bc5549d4c5dd29 Mon Sep 17 00:00:00 2001 From: Mole Date: Tue, 21 Dec 2021 15:15:53 +0100 Subject: [PATCH] Check for null in DefaultShortStringHelperConfig.WithDefault --- .../Strings/DefaultShortStringHelperConfig.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs b/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs index 273d7a6562..d5bab4afb1 100644 --- a/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs +++ b/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using Umbraco.Cms.Core.Configuration.Models; +using Umbraco.Cms.Core.Configuration.UmbracoSettings; using Umbraco.Extensions; namespace Umbraco.Cms.Core.Strings @@ -60,7 +61,18 @@ namespace Umbraco.Cms.Core.Strings /// The short string helper. public DefaultShortStringHelperConfig WithDefault(RequestHandlerSettings requestHandlerSettings) { - UrlReplaceCharacters = requestHandlerSettings.CharCollection + // CharCollection could potentially be null if not invoked first by the framework, for instance in tests, so ensure that it's initialized. + IEnumerable charCollection = requestHandlerSettings.CharCollection; + if (charCollection is null) + { + charCollection = requestHandlerSettings.CharCollection; + if (charCollection is null) + { + throw new ArgumentNullException(nameof(requestHandlerSettings.CharCollection)); + } + } + + UrlReplaceCharacters = charCollection .Where(x => string.IsNullOrEmpty(x.Char) == false) .ToDictionary(x => x.Char, x => x.Replacement);