From c38a3aff914d4d187697b4c4674c2c005d1c7338 Mon Sep 17 00:00:00 2001 From: tromey Date: Mon, 25 Oct 2004 17:09:46 +0000 Subject: * java/util/ResourceBundle.java (tryBundle): Use Class.isAssignableFrom rather than catching ClassCastException. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89542 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/util/ResourceBundle.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'libjava/java') diff --git a/libjava/java/util/ResourceBundle.java b/libjava/java/util/ResourceBundle.java index 3299c6ff825..a60471dcab5 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) { -- cgit v1.2.3