diff --git a/icu4j/src/com/ibm/icu/dev/test/util/ICUResourceBundleTest.java b/icu4j/src/com/ibm/icu/dev/test/util/ICUResourceBundleTest.java index 7dd687c80c3..4a88f636f2a 100644 --- a/icu4j/src/com/ibm/icu/dev/test/util/ICUResourceBundleTest.java +++ b/icu4j/src/com/ibm/icu/dev/test/util/ICUResourceBundleTest.java @@ -52,6 +52,14 @@ public final class ICUResourceBundleTest extends TestFmwk { } + } + public void TestJB3879(){ + // this tests tests loading of root bundle when a resource bundle + // for the default locale is requested + ICUResourceBundle bundle = (ICUResourceBundle) UResourceBundle.getBundleInstance("com/ibm/icu/dev/data/testdata", ULocale.getDefault()); + if(bundle==null){ + errln("could not create the resource bundle"); + } } public void TestOpen(){ ICUResourceBundle bundle = (ICUResourceBundle) UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME, "en_US_POSIX", ICUData.class.getClassLoader()); diff --git a/icu4j/src/com/ibm/icu/util/UResourceBundle.java b/icu4j/src/com/ibm/icu/util/UResourceBundle.java index 8dc25731e3e..03b116d8246 100644 --- a/icu4j/src/com/ibm/icu/util/UResourceBundle.java +++ b/icu4j/src/com/ibm/icu/util/UResourceBundle.java @@ -415,6 +415,8 @@ public abstract class UResourceBundle extends ResourceBundle{ }else{ if(defaultID.indexOf(localeName)==-1){ b = instantiateICUResource(baseName, defaultID, root); + }else if(rootLocale.length()!=0){ + b = ICUResourceBundle.createBundle(baseName, rootLocale, root); } } }else{