diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java index 25a2efae8fe1..32b03616a825 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver.java @@ -85,7 +85,7 @@ public List getSupportedLocales() { @Override public Locale resolveLocale(HttpServletRequest request) { Locale defaultLocale = getDefaultLocale(); - if (defaultLocale != null && request.getHeader("Accept-Language") == null) { + if (defaultLocale != null && !StringUtils.hasText(request.getHeader("Accept-Language"))) { return defaultLocale; } Locale requestLocale = request.getLocale(); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolverTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolverTests.java index 11554fa85226..c396c6ab0759 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolverTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/i18n/AcceptHeaderLocaleResolverTests.java @@ -105,6 +105,14 @@ void defaultLocale() { assertThat(this.resolver.resolveLocale(request)).isEqualTo(US); } + @Test + void defaultLocaleWithBlankAcceptLanguageHeader() { + this.resolver.setDefaultLocale(JAPANESE); + MockHttpServletRequest request = new MockHttpServletRequest(); + request.addHeader("Accept-Language", ""); + assertThat(this.resolver.resolveLocale(request)).isEqualTo(JAPANESE); + } + private HttpServletRequest request(Locale... locales) { MockHttpServletRequest request = new MockHttpServletRequest();