aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2004-10-25 17:09:46 +0000
committerTom Tromey <tromey@gcc.gnu.org>2004-10-25 17:09:46 +0000
commit4cd26879f7580e057368bf872d2417764814f2ce (patch)
treef3da158abcbba2b8469595747a1af75356de5fed /libjava
parent6fc058da980d2f4bbb0036936eef7b11df743565 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--libjava/java/util/ResourceBundle.java10
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)
{