]> WPIA git - gigi.git/commitdiff
Fix: adding coverity-indicated synchronization
authorFelix Dörre <felix@dogcraft.de>
Sat, 21 Feb 2015 23:58:44 +0000 (00:58 +0100)
committerFelix Dörre <felix@dogcraft.de>
Sat, 21 Feb 2015 23:58:44 +0000 (00:58 +0100)
src/org/cacert/gigi/pages/Page.java

index 5332fd9e2c0342902314c897f52e51e924581385..f2bdbd7f7c370951ccfd02cfc9776ec3f6c86833 100644 (file)
@@ -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<Locale> 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<Locale> 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) {