From: Felix Dörre Date: Sat, 21 Feb 2015 23:58:44 +0000 (+0100) Subject: Fix: adding coverity-indicated synchronization X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=7be1ca08a9b8da1da284dda9aba9a6a87200319b Fix: adding coverity-indicated synchronization --- diff --git a/src/org/cacert/gigi/pages/Page.java b/src/org/cacert/gigi/pages/Page.java index 5332fd9e..f2bdbd7f 100644 --- a/src/org/cacert/gigi/pages/Page.java +++ b/src/org/cacert/gigi/pages/Page.java @@ -104,24 +104,27 @@ public abstract class Page implements PermissionCheckable { public static Language getLanguage(ServletRequest req) { HttpSession session = ((HttpServletRequest) req).getSession(); - Locale sessval = (Locale) session.getAttribute(Language.SESSION_ATTRIB_NAME); - if (sessval != null) { - Language l = Language.getInstance(sessval); - if (l != null) { - return l; + synchronized (session) { + + Locale sessval = (Locale) session.getAttribute(Language.SESSION_ATTRIB_NAME); + if (sessval != null) { + Language l = Language.getInstance(sessval); + if (l != null) { + return l; + } } - } - Enumeration langs = req.getLocales(); - while (langs.hasMoreElements()) { - Locale c = langs.nextElement(); - Language l = Language.getInstance(c); - if (l != null) { - session.setAttribute(Language.SESSION_ATTRIB_NAME, l.getLocale()); - return l; + Enumeration langs = req.getLocales(); + while (langs.hasMoreElements()) { + Locale c = langs.nextElement(); + Language l = Language.getInstance(c); + if (l != null) { + session.setAttribute(Language.SESSION_ATTRIB_NAME, l.getLocale()); + return l; + } } + session.setAttribute(Language.SESSION_ATTRIB_NAME, Locale.ENGLISH); + return Language.getInstance(Locale.ENGLISH); } - session.setAttribute(Language.SESSION_ATTRIB_NAME, Locale.ENGLISH); - return Language.getInstance(Locale.ENGLISH); } public static String translate(ServletRequest req, String string) {