Index: lams_common/src/java/org/lamsfoundation/lams/web/filter/LocaleFilter.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -r889a3994f9a2b92372cadd974984ef914867f235 --- lams_common/src/java/org/lamsfoundation/lams/web/filter/LocaleFilter.java (.../LocaleFilter.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/web/filter/LocaleFilter.java (.../LocaleFilter.java) (revision 889a3994f9a2b92372cadd974984ef914867f235) @@ -36,8 +36,6 @@ import org.apache.commons.lang.StringUtils; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; -import org.lamsfoundation.lams.util.Configuration; -import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -46,6 +44,10 @@ /** * Filter request to preferred locale according to user option in database, client browser locale or default locale. * The proity is user setting in database is highest, then browser locale, then the default locale. + *
+ * NOTICE: This filter must set after org.lamsfoundation.lams.web.session.SystemSessionFilter
+ * in web.xml because it need get value from SystemSession .
+ *
* @author Steve.Ni
*
* @version $Revision$
@@ -86,15 +88,17 @@
if(preferredLocale == null){
HttpSession sharedsession = SessionManager.getSession();
UserDTO user = (UserDTO) sharedsession.getAttribute(AttributeNames.USER);
- if(user != null){
- direction = user.getDirection();
- tz = user.getTimeZone();
- String lang = user.getLocaleLanguage();
- String country = user.getLocaleCountry();
- // would prefer both the language and country but that's not always feasible.
- // so we may end up with some confusing situations.
- if(!StringUtils.isEmpty(lang)){
- preferredLocale = new Locale(lang,country!=null?country:"");
+ if(sharedsession != null){
+ if(user != null){
+ direction = user.getDirection();
+ tz = user.getTimeZone();
+ String lang = user.getLocaleLanguage();
+ String country = user.getLocaleCountry();
+ // would prefer both the language and country but that's not always feasible.
+ // so we may end up with some confusing situations.
+ if(!StringUtils.isEmpty(lang)){
+ preferredLocale = new Locale(lang,country!=null?country:"");
+ }
}
}
}