Update of /var/cvs/src/org/mmbase/util
In directory james.mmbase.org:/tmp/cvs-serv17809

Modified Files:
        LocalizedString.java 
Log Message:
Removed some hacking with default locale which made stuff hard to undertnad and 
fails testcase


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util


Index: LocalizedString.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/util/LocalizedString.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- LocalizedString.java        29 Apr 2009 07:39:08 -0000      1.39
+++ LocalizedString.java        30 Apr 2009 19:53:46 -0000      1.40
@@ -32,7 +32,7 @@
  *</p>
  *
  * @author Michiel Meeuwissen
- * @version $Id: LocalizedString.java,v 1.39 2009/04/29 07:39:08 michiel Exp $
+ * @version $Id: LocalizedString.java,v 1.40 2009/04/30 19:53:46 michiel Exp $
  * @since MMBase-1.8
  */
 public class LocalizedString implements java.io.Serializable, 
PublicCloneable<LocalizedString> {
@@ -47,16 +47,13 @@
      * Sets a default locale for this JVM or web-app. When not using it, the 
locale is the system
      * default. Several web-apps do run in one JVM however and it is very 
imaginable that you want a
      * different default for the Locale.
-     *
-     * So, this function can be called only once. Calling it the second time 
will not do
-     * anything. It returns the already set default locale then, which should 
probably prompt you to log an error
-     * or throw an exception or so. Otherwise it returns <code>null</code> 
indicating that the
-     * default locale is now what you just set.
+     * @return The previously set default locale. Should normally be 
<code>null</code> since it is
+     * odd to call this more than once.
      */
     public static Locale setDefault(Locale locale) {
-        if (defaultLocale != null) return defaultLocale;
+        Locale prev = defaultLocale;
         defaultLocale = locale;
-        return null;
+        return prev;
     }
     /**
      * Returns the default locale if set, or otherwise the system default 
({...@link java.util.Locale#getDefault}).
@@ -83,10 +80,6 @@
     private Map<Locale, String> values = null;
     private String bundle = null;
 
-    // just for the contract of Serializable
-    protected LocalizedString() {
-    }
-
     /**
      * @param k The key of this String, if k == <code>null</code> then the 
first set will define it.
      */
@@ -113,7 +106,7 @@
      */
     public String get(Locale locale) {
         if (locale == null) {
-            locale = defaultLocale == null ? Locale.getDefault() : 
defaultLocale;
+            locale = getDefault();
         }
         if (values != null) {
             String result = values.get(locale);
@@ -140,12 +133,14 @@
             // This code 'fixes' that reference.
             // It's not nice, but as a proper fix likely requires a total 
rewrite of Module.java and
             // MMBase.java, this will have to do for the moment.
-            if (locale.equals(defaultLocale)) {
+            Locale def = getDefault();
+            if (locale.equals(def)) {
                 result = values.get(null);
                 if (result != null) {
                     values.put(locale, result);
                     return result;
                 }
+
             }
         }
 
@@ -175,11 +170,12 @@
         }
 
         if (locale == null) {
-            locale = defaultLocale;
+            locale = getDefault();
         }
 
         values.put(locale, value);
 
+
         if (locale != null) {
             String variant  = locale.getVariant();
             String country  = locale.getCountry();
@@ -237,7 +233,7 @@
     }
 
     public String getDebugString() {
-        return "k: " + getKey() + " values: " + getValues() + " b:" + 
getBundle();
+        return "k: " + getKey() + " values: " + getValues() + " b:" + 
getBundle() + " dl: " + defaultLocale;
     }
 
     /**
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to