private static void testToBundleName() {
    final String name = "J2SE";
    Map<Locale, String> bundleNames = new HashMap<Locale, String>();
    bundleNames.put(new Locale("ja", "JP", "YOK"), name + "_" + "ja" + "_" + "JP" + "_" + "YOK");
    bundleNames.put(new Locale("ja", "JP"), name + "_" + "ja" + "_" + "JP");
    bundleNames.put(new Locale("ja"), name + "_" + "ja");
    bundleNames.put(new Locale("ja", "", "YOK"), name + "_" + "ja" + "_" + "" + "_" + "YOK");
    bundleNames.put(new Locale("", "JP", "YOK"), name + "_" + "" + "_" + "JP" + "_" + "YOK");
    bundleNames.put(new Locale("", "", "YOK"), name + "_" + "" + "_" + "" + "_" + "YOK");
    bundleNames.put(new Locale("", "JP"), name + "_" + "" + "_" + "JP");
    bundleNames.put(new Locale(""), name);

    for (Locale locale : bundleNames.keySet()) {
      String bn = CONTROL.toBundleName(name, locale);
      String expected = bundleNames.get(locale);
      if (!bn.equals(expected)) {
        error("toBundleName: got %s, expected %s%n", bn, expected);
      }
    }

    final int NARGS = 2;
    for (int mask = 0; mask < (1 << NARGS) - 1; mask++) {
      Object[] data = getNpeArgs(NARGS, mask);
      try {
        String s = CONTROL.toBundleName((String) data[0], (Locale) data[1]);
        error("toBundleName(%s, %s) doesn't throw NPE.%n", data[0], data[1]);
      } catch (NullPointerException e) {
      }
    }
  }