summaryrefslogtreecommitdiff
path: root/libjava/java/util/ResourceBundle.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/util/ResourceBundle.java')
-rw-r--r--libjava/java/util/ResourceBundle.java25
1 files changed, 17 insertions, 8 deletions
diff --git a/libjava/java/util/ResourceBundle.java b/libjava/java/util/ResourceBundle.java
index 639872bb838..99b81bf218e 100644
--- a/libjava/java/util/ResourceBundle.java
+++ b/libjava/java/util/ResourceBundle.java
@@ -73,7 +73,8 @@ public abstract class ResourceBundle
// stripping off the '_' delimited tails until the search name is
// the same as stopHere.
private static final ResourceBundle trySomeGetBundle (String bundleName,
- String stopHere)
+ String stopHere,
+ ClassLoader loader)
{
Class rbc;
ResourceBundle needs_parent = null, r, result = null;
@@ -115,9 +116,9 @@ public abstract class ResourceBundle
}
// Look for a properties file.
- InputStream i =
- ClassLoader.getSystemResourceAsStream (bundleName.replace ('.', '/')
- + ".properties");
+ InputStream i = loader.getResourceAsStream (bundleName.replace ('.',
+ '/')
+ + ".properties");
if (i != null)
{
try
@@ -151,7 +152,8 @@ public abstract class ResourceBundle
// Search for bundles, but stop at baseName_language (if required).
// This is synchronized so that the cache works correctly.
private static final synchronized ResourceBundle
- partialGetBundle (String baseName, Locale locale, boolean langStop)
+ partialGetBundle (String baseName, Locale locale, boolean langStop,
+ ClassLoader loader)
{
ResourceBundle rb;
@@ -168,7 +170,7 @@ public abstract class ResourceBundle
+ (langStop ? ("_" + locale.getLanguage()) : ""));
- rb = trySomeGetBundle(bundleName, stopHere);
+ rb = trySomeGetBundle(bundleName, stopHere, loader);
if (rb != null)
resource_cache.put(bundleName, rb);
@@ -177,6 +179,13 @@ public abstract class ResourceBundle
public static final ResourceBundle getBundle (String baseName,
Locale locale)
+ {
+ return getBundle (baseName, locale, ClassLoader.getSystemClassLoader ());
+ }
+
+ public static final ResourceBundle getBundle (String baseName,
+ Locale locale,
+ ClassLoader loader)
throws MissingResourceException
{
ResourceBundle rb;
@@ -185,14 +194,14 @@ public abstract class ResourceBundle
if (baseName == null)
throw new NullPointerException ();
- rb = partialGetBundle(baseName, locale, false);
+ rb = partialGetBundle(baseName, locale, false, loader);
if (rb != null)
return rb;
// Finally, try the default locale.
if (! locale.equals(Locale.getDefault()))
{
- rb = partialGetBundle(baseName, Locale.getDefault(), true);
+ rb = partialGetBundle(baseName, Locale.getDefault(), true, loader);
if (rb != null)
return rb;
}