From c2f39f10387293f5d91372720b05a70917b5b3df Mon Sep 17 00:00:00 2001 From: SungbinYang Date: Sat, 5 Oct 2024 10:17:43 +0900 Subject: [PATCH 1/2] Refactor: Extract duplicate Locale logic and use Optional for null checks --- .../servlet/i18n/SessionLocaleResolver.java | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java index b1bff28629f..f13145529e7 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java @@ -17,6 +17,7 @@ package org.springframework.web.servlet.i18n; import java.util.Locale; +import java.util.Optional; import java.util.TimeZone; import java.util.function.Function; @@ -57,6 +58,7 @@ * * @author Juergen Hoeller * @author Vedran Pavic + * @author Sungbin Yang * @since 27.02.2003 * @see #setDefaultLocale * @see #setDefaultTimeZone @@ -93,6 +95,11 @@ public class SessionLocaleResolver extends AbstractLocaleContextResolver { return (defaultLocale != null ? defaultLocale : request.getLocale()); }; + private Locale getLocaleFromRequest(HttpServletRequest request) { + return Optional.ofNullable((Locale) WebUtils.getSessionAttribute(request, this.localeAttributeName)) + .orElse(defaultLocaleFunction.apply(request)); + } + private Function defaultTimeZoneFunction = request -> getDefaultTimeZone(); /** @@ -148,11 +155,7 @@ public void setDefaultTimeZoneFunction(Function de @Override public Locale resolveLocale(HttpServletRequest request) { - Locale locale = (Locale) WebUtils.getSessionAttribute(request, this.localeAttributeName); - if (locale == null) { - locale = this.defaultLocaleFunction.apply(request); - } - return locale; + return getLocaleFromRequest(request); } @Override @@ -160,20 +163,13 @@ public LocaleContext resolveLocaleContext(final HttpServletRequest request) { return new TimeZoneAwareLocaleContext() { @Override public Locale getLocale() { - Locale locale = (Locale) WebUtils.getSessionAttribute(request, localeAttributeName); - if (locale == null) { - locale = defaultLocaleFunction.apply(request); - } - return locale; + return getLocaleFromRequest(request); } @Override @Nullable public TimeZone getTimeZone() { - TimeZone timeZone = (TimeZone) WebUtils.getSessionAttribute(request, timeZoneAttributeName); - if (timeZone == null) { - timeZone = defaultTimeZoneFunction.apply(request); - } - return timeZone; + return Optional.ofNullable((TimeZone) WebUtils.getSessionAttribute(request, timeZoneAttributeName)) + .orElse(defaultTimeZoneFunction.apply(request)); } }; } From 409ea3f053118ea47b77ce12a7311f41e6fb830a Mon Sep 17 00:00:00 2001 From: SungbinYang Date: Sat, 5 Oct 2024 10:34:11 +0900 Subject: [PATCH 2/2] add 'this' keyword --- .../springframework/web/servlet/i18n/SessionLocaleResolver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java index f13145529e7..5b313589b15 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/SessionLocaleResolver.java @@ -97,7 +97,7 @@ public class SessionLocaleResolver extends AbstractLocaleContextResolver { private Locale getLocaleFromRequest(HttpServletRequest request) { return Optional.ofNullable((Locale) WebUtils.getSessionAttribute(request, this.localeAttributeName)) - .orElse(defaultLocaleFunction.apply(request)); + .orElse(this.defaultLocaleFunction.apply(request)); } private Function defaultTimeZoneFunction = request -> getDefaultTimeZone();