Skip to content

Commit 2e65324

Browse files
committed
Fix concurrency issue against shared cookie field in setLocaleContext
Closes gh-36869
1 parent 86a68a7 commit 2e65324

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

spring-webmvc/src/main/java/org/springframework/web/servlet/i18n/CookieLocaleResolver.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,15 +340,16 @@ public void setLocaleContext(HttpServletRequest request, @Nullable HttpServletRe
340340

341341
Locale locale = null;
342342
TimeZone zone = null;
343+
ResponseCookie cookie = this.cookie;
343344
if (localeContext != null) {
344345
locale = localeContext.getLocale();
345346
if (localeContext instanceof TimeZoneAwareLocaleContext timeZoneAwareLocaleContext) {
346347
zone = timeZoneAwareLocaleContext.getTimeZone();
347348
}
348349
String value = (locale != null ? toLocaleValue(locale) : "-") + (zone != null ? '/' + zone.getID() : "");
349-
this.cookie = this.cookie.mutate().value(value).build();
350+
cookie = this.cookie.mutate().value(value).build();
350351
}
351-
response.addHeader(HttpHeaders.SET_COOKIE, this.cookie.toString());
352+
response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString());
352353
request.setAttribute(LOCALE_REQUEST_ATTRIBUTE_NAME,
353354
(locale != null ? locale : this.defaultLocaleFunction.apply(request)));
354355
request.setAttribute(TIME_ZONE_REQUEST_ATTRIBUTE_NAME,

0 commit comments

Comments
 (0)