removing static reference from LocaleContext
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Thu, 28 Mar 2013 09:54:08 +0000 (09:54 +0000)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Thu, 28 Mar 2013 09:54:08 +0000 (09:54 +0000)
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/interceptor/LocaleContextHandlerInterceptor.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/l10n/LocaleContext.java

index a16461b04030d3f184dc2ed50d74d2ecb12beb93..69fae85d125105fab4c9a56e88d63cf2baf5cb53 100644 (file)
@@ -1,9 +1,9 @@
 // $Id: DatasourceContextHandlerInterceptor.java 5473 2009-03-25 13:42:07Z a.kohlbecker $\r
 /**\r
 * Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
 * http://www.e-taxonomy.eu\r
-* \r
+*\r
 * The contents of this file are subject to the Mozilla Public License Version 1.1\r
 * See LICENSE.TXT at the top of this package for the full license terms.\r
 */\r
@@ -13,7 +13,7 @@ package eu.etaxonomy.cdm.remote.controller.interceptor;
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
 \r
-import org.apache.log4j.Logger;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;\r
 \r
 import eu.etaxonomy.cdm.remote.l10n.LocaleContext;\r
@@ -24,10 +24,13 @@ import eu.etaxonomy.cdm.remote.l10n.LocaleContext;
  */\r
 public class LocaleContextHandlerInterceptor extends HandlerInterceptorAdapter {\r
 \r
+    @Autowired\r
+    private final LocaleContext localeContext = null;\r
+\r
        @SuppressWarnings("unchecked")\r
        @Override\r
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {\r
-               LocaleContext.setLocales(request.getLocales());\r
+           localeContext.setLocales(request.getLocales());\r
         return true;\r
        }\r
 \r
index 239b8dba20a96bad7d776bd75d4cb29c2a5a91a9..382b4338d9bcacbb6ce249c4097fb0dbe8f49644 100644 (file)
@@ -6,6 +6,7 @@ import java.util.List;
 import java.util.Locale;\r
 import java.util.Vector;\r
 \r
+import org.hibernate.HibernateException;\r
 import org.springframework.beans.factory.annotation.Autowired;\r
 import org.springframework.stereotype.Component;\r
 \r
@@ -14,26 +15,26 @@ import eu.etaxonomy.cdm.model.common.Language;
 \r
 @Component\r
 public class LocaleContext {\r
-       \r
+\r
        protected static ThreadLocal<Vector<Locale>> localesHolder = new ThreadLocal<Vector<Locale>>(){\r
 \r
                @Override\r
                protected Vector<Locale> initialValue() {\r
                        return new Vector<Locale>();\r
                }\r
-               \r
+\r
        };\r
-       \r
-       protected static Hashtable<String, List<Language>> languageMap = new Hashtable<String, List<Language>>(); \r
-       \r
-       private static ITermService termService;\r
-       \r
+\r
+       protected static Hashtable<String, List<Language>> languageMap = new Hashtable<String, List<Language>>();\r
+\r
+       private ITermService termService;\r
+\r
        @Autowired\r
        public void setTermService(ITermService termService) {\r
                this.termService = termService;\r
        }\r
 \r
-       public static void setLocales(Enumeration<Locale> locales) {\r
+       public void setLocales(Enumeration<Locale> locales) {\r
                Vector<Locale> l = new Vector<Locale>();\r
                while(locales.hasMoreElements()){\r
                        l.add(locales.nextElement());\r
@@ -41,13 +42,13 @@ public class LocaleContext {
                LocaleContext.localesHolder.set(l);\r
                mapToLanguages(l);\r
        }\r
-       \r
+\r
        public static Enumeration<Locale> getLocales(){\r
                return localesHolder.get().elements();\r
        }\r
-       \r
+\r
        /**\r
-        * \r
+        *\r
         * @return\r
         */\r
        public static List<Language> getLanguages(){\r
@@ -55,14 +56,20 @@ public class LocaleContext {
                return languageMap.get(localesKey);\r
        }\r
 \r
-       private static void mapToLanguages(Vector<Locale> locales) {\r
-               \r
+       private void mapToLanguages(Vector<Locale> locales) {\r
+\r
                String localesKey = composeLocalesKey(locales.elements());\r
 \r
-               if(!languageMap.containsKey(localesKey)){\r
-                       List<Language> languages = termService.getLanguagesByLocale(locales.elements());\r
-                       languageMap.put(localesKey, languages);\r
-               }\r
+               try {\r
+            if (!languageMap.containsKey(localesKey)) {\r
+                List<Language> languages = termService.getLanguagesByLocale(locales.elements());\r
+                languageMap.put(localesKey, languages);\r
+            }\r
+        } catch (HibernateException e) {\r
+\r
+            System.err.println("DEBUG: " + Thread.currentThread());\r
+            e.printStackTrace(System.err);\r
+        }\r
        }\r
 \r
        private static String composeLocalesKey(Enumeration<Locale> locales) {\r