Author: echatellier Date: 2013-04-02 16:01:15 +0200 (Tue, 02 Apr 2013) New Revision: 196 Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/196 Log: Fix usage of set default locale to entiere JVM Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/utils/security/AuthSession.java Modified: trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java =================================================================== --- trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java 2013-04-02 13:18:05 UTC (rev 195) +++ trunk/cantharella.data/src/main/java/nc/ird/cantharella/data/config/DataContext.java 2013-04-02 14:01:15 UTC (rev 196) @@ -198,7 +198,6 @@ locales.add(Locale.ENGLISH); LOCALES = Collections.unmodifiableList(locales); - Locale.setDefault(LOCALES.get(0)); Map<Integer, String> referentiels = new HashMap<Integer, String>(); referentiels.put(4326, "WGS84"); Modified: trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/utils/security/AuthSession.java =================================================================== --- trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/utils/security/AuthSession.java 2013-04-02 13:18:05 UTC (rev 195) +++ trunk/cantharella.web/src/main/java/nc/ird/cantharella/web/utils/security/AuthSession.java 2013-04-02 14:01:15 UTC (rev 196) @@ -71,9 +71,7 @@ public AuthSession(Request request) { super(request); WebApplicationImpl.injectSpringBeans(this); - if (!DataContext.LOCALES.contains(getLocale())) { - setLocale(Locale.getDefault()); - } + checkLocale(); setAttribute(ATTRIBUTE_ROLE, new HashSet<TypeDroit>()); setUtilisateur(null); @@ -84,6 +82,22 @@ } /** + * Check that current locale is a locale managed by cantharella. + */ + protected void checkLocale() { + Locale locale = super.getLocale(); + if (!DataContext.LOCALES.contains(locale)) { + // try to get new locale with current locale language + locale = new Locale(locale.getLanguage()); + if (!DataContext.LOCALES.contains(getLocale())) { + // default to "en" locale + locale = DataContext.LOCALES.get(0); + } + setLocale(locale); + } + } + + /** * Autologin * @return Success */