diff --git a/src/Microsoft.AspNet.Localization/AcceptLanguageHeaderRequestCultureProvider.cs b/src/Microsoft.AspNet.Localization/AcceptLanguageHeaderRequestCultureProvider.cs index 1771f5ada2..a80271fbc4 100644 --- a/src/Microsoft.AspNet.Localization/AcceptLanguageHeaderRequestCultureProvider.cs +++ b/src/Microsoft.AspNet.Localization/AcceptLanguageHeaderRequestCultureProvider.cs @@ -57,7 +57,7 @@ namespace Microsoft.AspNet.Localization requestCulture = ValidateRequestCulture(requestCulture); - if (requestCulture.Culture == culture) + if (requestCulture?.Culture == culture) { return Task.FromResult(requestCulture); } diff --git a/test/Microsoft.AspNet.Localization.Tests/AccessLanguageHeaderRequestCultureProviderTest.cs b/test/Microsoft.AspNet.Localization.Tests/AccessLanguageHeaderRequestCultureProviderTest.cs index dc8e34b71f..854b62c854 100644 --- a/test/Microsoft.AspNet.Localization.Tests/AccessLanguageHeaderRequestCultureProviderTest.cs +++ b/test/Microsoft.AspNet.Localization.Tests/AccessLanguageHeaderRequestCultureProviderTest.cs @@ -106,5 +106,38 @@ namespace Microsoft.Framework.Localization.Tests var response = await client.GetAsync(string.Empty); } } + + [Fact] + public async void OmitDefaultRequestCultureShouldNotThrowNullReferenceException_And_ShouldGetTheRightCulture() + { + using (var server = TestServer.Create(app => + { + var options = new RequestLocalizationOptions() + { + SupportedCultures = new List + { + new CultureInfo("ar-YE") + }, + SupportedUICultures = new List + { + new CultureInfo("ar-YE") + } + }; + app.UseRequestLocalization(options); + app.Run(context => + { + var requestCultureFeature = context.Features.Get(); + var requestCulture = requestCultureFeature.RequestCulture; + Assert.Equal("ar-YE", requestCulture.Culture.Name); + Assert.Equal("ar-YE", requestCulture.UICulture.Name); + return Task.FromResult(0); + }); + })) + { + var client = server.CreateClient(); + client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-YE,en-US"); + var response = await client.GetAsync(string.Empty); + } + } } } \ No newline at end of file