code: protected static UResourceBundle instantiateBundle(String baseName, String localeName,
                                                         ClassLoader root, boolean disableFallback) {
          RootType rootType = getRootType(baseName, root);
  
          switch (rootType) {
          case ICU:
              return ICUResourceBundle.getBundleInstance(baseName, localeName, root, disableFallback);
  
          case JAVA:
              return ResourceBundleWrapper.getBundleInstance(baseName, localeName, root,
                                                             disableFallback);
  
          case MISSING:
          default:
              UResourceBundle b;
              try{
                  b = ICUResourceBundle.getBundleInstance(baseName, localeName, root,
                                                          disableFallback);
                  setRootType(baseName, RootType.ICU);
              }catch(MissingResourceException ex){
                  b = ResourceBundleWrapper.getBundleInstance(baseName, localeName, root,
                                                              disableFallback);
                  setRootType(baseName, RootType.JAVA);
              }
              return b;
          }
      }
docs: <strong>[icu]</strong> Loads a new resource bundle for the given base name, locale and class loader.
  Optionally will disable loading of fallback bundles.
  @param baseName string containing the name of the data package.
  If null the default ICU package name is used.
  @param localeName the locale for which a resource bundle is desired
  @param root the class object from which to load the resource bundle
  @param disableFallback disables loading of fallback lookup chain
  @throws MissingResourceException If no resource bundle for the specified base name
  can be found
  @return a resource bundle for the given base name and locale