code: protected MessageResourceBundle findBundleSimply(String messageName, Locale locale) {
          final Map<Locale, MessageResourceBundle> cachedMessageMap = bundleCacheMap.get(messageName);
          if (cachedMessageMap != null) {
              final MessageResourceBundle cachedBundle = cachedMessageMap.get(locale);
              if (cachedBundle != null) {
                  return cachedBundle;
              }
          }
          synchronized (bundleCacheMap) {
              Map<Locale, MessageResourceBundle> localeKeyMap = bundleCacheMap.get(messageName);
              if (localeKeyMap != null) {
                  final MessageResourceBundle retryBundle = localeKeyMap.get(locale);
                  if (retryBundle != null) {
                      return retryBundle;
                  }
              } else {
                  localeKeyMap = newConcurrentHashMap(); // concurrent just in case
                  bundleCacheMap.put(messageName, localeKeyMap);
              }
              // our hope would be that it has strict cache
              // because this cache is top-resource-driven cache
              // e.g. duplicate instance of default language bundle
              final MessageResourceBundle loadedBundle = loadBundle(messageName, locale);
              localeKeyMap.put(locale, loadedBundle);
          }
          return bundleCacheMap.get(messageName).get(locale);
      }
docs: Find The bundle simply (without extends handling), that may be cached. <br>
  Returned bundle may have language, country, variant and default language's properties
  for the message name and locale, as hierarchy like this:
  <pre>
  e.g. messageName = foo_message, locale = ja
  parent3      : foo_message.properties *last search
  |-parent2   : foo_message_ja_JP_xx.properties
  |-parent1 : foo_message_ja_JP.properties
  |-root  : foo_message_ja.properties *first search
  
  MessageResourceBundle rootBundle = findBundleSimply("foo_message", locale);
  MessageResourceBundle parent1 = rootBundle.getParent();
  MessageResourceBundle parent2 = parent1.getParent();
  MessageResourceBundle parent3 = parent2.getParent();
  ...
  </pre>
  @param messageName The message name for the bundle. (NotNull)
  @param locale The locale of current request. (NotNull)
  @return The bundle that contains properties defined at specified message name.