diff options
author | Tom Tromey <tromey@redhat.com> | 2004-10-25 17:09:46 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2004-10-25 17:09:46 +0000 |
commit | 4cd26879f7580e057368bf872d2417764814f2ce (patch) | |
tree | f3da158abcbba2b8469595747a1af75356de5fed /libjava | |
parent | 6fc058da980d2f4bbb0036936eef7b11df743565 (diff) | |
download | gcc-4cd26879f7580e057368bf872d2417764814f2ce.zip gcc-4cd26879f7580e057368bf872d2417764814f2ce.tar.gz gcc-4cd26879f7580e057368bf872d2417764814f2ce.tar.bz2 |
ResourceBundle.java (tryBundle): Use Class.isAssignableFrom rather than catching ClassCastException.
* java/util/ResourceBundle.java (tryBundle): Use
Class.isAssignableFrom rather than catching ClassCastException.
From-SVN: r89542
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/java/util/ResourceBundle.java | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index f79c8f8..4dee125 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,10 @@ 2004-10-25 Tom Tromey <tromey@redhat.com> + * java/util/ResourceBundle.java (tryBundle): Use + Class.isAssignableFrom rather than catching ClassCastException. + +2004-10-25 Tom Tromey <tromey@redhat.com> + * gnu/java/text/WordBreakIterator.java (WordBreakIterator): Don't initialize `iter'. * gnu/java/text/SentenceBreakIterator.java diff --git a/libjava/java/util/ResourceBundle.java b/libjava/java/util/ResourceBundle.java index 3299c6f..a60471d 100644 --- a/libjava/java/util/ResourceBundle.java +++ b/libjava/java/util/ResourceBundle.java @@ -473,12 +473,18 @@ public abstract class ResourceBundle rbClass = Class.forName(localizedName); else rbClass = classloader.loadClass(localizedName); - bundle = (ResourceBundle) rbClass.newInstance(); + // Note that we do the check up front instead of catching + // ClassCastException. The reason for this is that some crazy + // programs (Eclipse) have classes that do not extend + // ResourceBundle but that have the same name as a property + // bundle; in fact Eclipse relies on ResourceBundle not + // instantiating these classes. + if (ResourceBundle.class.isAssignableFrom(rbClass)) + bundle = (ResourceBundle) rbClass.newInstance(); } catch (IllegalAccessException ex) {} catch (InstantiationException ex) {} catch (ClassNotFoundException ex) {} - catch (ClassCastException ex) {} if (bundle == null) { |