PatchSet 5921 
Date: 2005/01/26 14:33:02
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced DecimalFormatSymbols with Classpath

Members: 
        ChangeLog:1.3460->1.3461 
        libraries/javalib/java/text/DecimalFormatSymbols.java:1.19->1.20 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3460 kaffe/ChangeLog:1.3461
--- kaffe/ChangeLog:1.3460      Wed Jan 26 14:19:41 2005
+++ kaffe/ChangeLog     Wed Jan 26 14:33:02 2005
@@ -1,5 +1,11 @@
 2005-01-26  Dalibor Topic  <[EMAIL PROTECTED]>
 
+        * java/text/DecimalFormatSymbols.java: Resynced with GNU Classpath.
+
+       Reported by:  Mark Wielaard  <[EMAIL PROTECTED]>
+
+2005-01-26  Dalibor Topic  <[EMAIL PROTECTED]>
+
         Resynced with GNU Classpath.
 
        2005-01-25  Ito Kazumitsu  <[EMAIL PROTECTED]>
Index: kaffe/libraries/javalib/java/text/DecimalFormatSymbols.java
diff -u kaffe/libraries/javalib/java/text/DecimalFormatSymbols.java:1.19 
kaffe/libraries/javalib/java/text/DecimalFormatSymbols.java:1.20
--- kaffe/libraries/javalib/java/text/DecimalFormatSymbols.java:1.19    Thu Jan 
 6 13:03:51 2005
+++ kaffe/libraries/javalib/java/text/DecimalFormatSymbols.java Wed Jan 26 
14:33:06 2005
@@ -132,6 +132,12 @@
   /**
    * This method initializes a new instance of
    * <code>DecimalFormatSymbols</code> for the specified locale.
+   * <strong>Note</strong>: if the locale does not have an associated
+   * <code>Currency</code> instance, the currency symbol and
+   * international currency symbol will be set to the strings "?"
+   * and "XXX" respectively.  This generally happens with language
+   * locales (those with no specified country), such as
+   * <code>Locale.ENGLISH</code>.
    *
    * @param locale The local to load symbols for.
    * @throws NullPointerException if the locale is null.
@@ -139,6 +145,10 @@
   public DecimalFormatSymbols (Locale loc)
   {
     ResourceBundle res;
+
+    currency = null;
+    currencySymbol = "?";
+    intlCurrencySymbol = "XXX";
     try
       {
        res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
@@ -148,7 +158,18 @@
       {
        res = null;
       }
-    setCurrency(Currency.getInstance(loc));
+    try
+      {
+       Currency localeCurrency = Currency.getInstance(loc);
+       if (localeCurrency != null)
+         {
+           setCurrency(localeCurrency);
+         }
+      }
+    catch(IllegalArgumentException exception)
+      {
+       /* Locale has an invalid currency */
+      }
     decimalSeparator = safeGetChar (res, "decimalSeparator", '.');
     digit = safeGetChar (res, "digit", '#');
     exponential = safeGetChar (res, "exponential", 'E');
@@ -393,9 +414,9 @@
    */
   public void setCurrency (Currency currency)
   {
-    this.currency = currency;
     intlCurrencySymbol = currency.getCurrencyCode();
     currencySymbol = currency.getSymbol();
+    this.currency = currency;
   }
 
   /**

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to