PatchSet 5868 
Date: 2005/01/18 14:52:19
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced with GNU Classpath: fix for Currency

2005-01-18  Dalibor Topic  <[EMAIL PROTECTED]>

Resynced with GNU Classpath.

2005-01-17  Andrew John Hughes  <[EMAIL PROTECTED]>

* java/util/Currency.java:
(getInstance(String)): catch IllegalArgumentException
for locales without countries

Members: 
        ChangeLog:1.3410->1.3411 
        libraries/javalib/java/util/Currency.java:1.11->1.12 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3410 kaffe/ChangeLog:1.3411
--- kaffe/ChangeLog:1.3410      Tue Jan 18 13:50:35 2005
+++ kaffe/ChangeLog     Tue Jan 18 14:52:19 2005
@@ -1,6 +1,26 @@
 2005-01-18  Dalibor Topic  <[EMAIL PROTECTED]>
 
        Resynced with GNU Classpath.
+       
+       2005-01-17  Andrew John Hughes  <[EMAIL PROTECTED]>
+
+       * java/util/Currency.java:
+       (getInstance(String)): catch IllegalArgumentException
+       for locales without countries
+       
+2005-01-18  Dalibor Topic  <[EMAIL PROTECTED]>
+
+       Resynced with GNU Classpath.
+       
+       2005-01-16  Mark Wielaard  <[EMAIL PROTECTED]>
+
+       Reported by Christian Thalinger <[EMAIL PROTECTED]>
+       * java/lang/ClassLoader.java (getExtClassLoaderUrls): Add check for
+       null returned from getFiles().
+       
+2005-01-18  Dalibor Topic  <[EMAIL PROTECTED]>
+
+       Resynced with GNU Classpath.
 
        2005-01-15  Andrew John Hughes  <[EMAIL PROTECTED]>
 
Index: kaffe/libraries/javalib/java/util/Currency.java
diff -u kaffe/libraries/javalib/java/util/Currency.java:1.11 
kaffe/libraries/javalib/java/util/Currency.java:1.12
--- kaffe/libraries/javalib/java/util/Currency.java:1.11        Thu Jan 13 
05:55:25 2005
+++ kaffe/libraries/javalib/java/util/Currency.java     Tue Jan 18 14:52:22 2005
@@ -41,7 +41,6 @@
 import gnu.java.locale.LocaleInformation;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.ObjectStreamException;
 import java.io.Serializable;
 
@@ -129,8 +128,7 @@
     /* Try and load the properties from our iso4217.properties resource */
     try 
       {
-       InputStream propertyStream = 
Currency.class.getResourceAsStream("iso4217.properties");
-        properties.load(propertyStream);
+        
properties.load(Currency.class.getResourceAsStream("iso4217.properties"));
       }
     catch (IOException exception)
       {
@@ -170,7 +168,8 @@
     /* If there is no country code, return */
     if (countryCode.equals(""))
       {
-        return;
+        throw new
+         IllegalArgumentException("The specified country code is invalid");
       }
     /* Construct the key for the currency */
     currencyKey = countryCode + ".currency";
@@ -250,6 +249,11 @@
      */
     Currency newCurrency;
 
+    if (locale == null || locale.getCountry() == null)
+      {
+       throw new
+         NullPointerException("The locale or its country is null.");
+      }
     /* Attempt to get the currency from the cache */
     newCurrency = (Currency) cache.get(locale);
     if (newCurrency == null)
@@ -300,11 +304,19 @@
     /* Loop through each locale, looking for the code */
     for (int i = 0;i < allLocales.length; i++)
       {
-       Currency testCurrency = getInstance (allLocales[i]);
-       
-       if (testCurrency != null &&
-           testCurrency.getCurrencyCode().equals(currencyCode))
-         return testCurrency;
+       try
+         {
+           Currency testCurrency = getInstance (allLocales[i]);
+           if (testCurrency != null &&
+               testCurrency.getCurrencyCode().equals(currencyCode))
+             {
+               return testCurrency;
+             }
+         }
+       catch (IllegalArgumentException exception)
+         {
+           /* Ignore locales without valid countries */
+         }
       }
     /* 
      * If we get this far, the code is not supported by any of

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

Reply via email to