diff --git a/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java b/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java index a791954..da377c1 100644 --- a/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java +++ b/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java @@ -337,7 +337,8 @@ private Set loadPotentialLanguageRoots(ResourceResolver resourceResolver || language.equals(localeRFC4646StringLower)) { // basename might be a multivalue (see https://issues.apache.org/jira/browse/SLING-4547) String[] baseNames = properties.get(PROP_BASENAME, new String[]{}); - if (baseName == null || Arrays.asList(baseNames).contains(baseName)) { + if ((baseName != null && Arrays.asList(baseNames).contains(baseName)) + || baseName == null && Arrays.asList(baseNames).isEmpty()) { paths.add(bundle.getPath()); } } diff --git a/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java b/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java index 047d424..f6ae0eb 100644 --- a/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java +++ b/src/test/java/org/apache/sling/i18n/it/ResourceBundleProviderIT.java @@ -207,13 +207,13 @@ public void testChangesDetection() throws RepositoryException { // set a message and fetch it so that it is cached in the resourcebundle cache setMessage(enBasenameRoot, MSG_KEY3, "EN_basename_message"); session.save(); - assertMessage(MSG_KEY3, Locale.ENGLISH, null, "EN_basename_message"); + assertMessage(MSG_KEY3, Locale.ENGLISH, null, MSG_KEY3); // returns the key, as it's not found assertMessage(MSG_KEY3, Locale.ENGLISH, BASENAME, "EN_basename_message"); // see that both resource bundles with and without basename are changed setMessage(enBasenameRoot, MSG_KEY3, "EN_basename_changed"); session.save(); - assertMessage(MSG_KEY3, Locale.ENGLISH, null, "EN_basename_changed"); + assertMessage(MSG_KEY3, Locale.ENGLISH, null, MSG_KEY3); assertMessage(MSG_KEY3, Locale.ENGLISH, BASENAME, "EN_basename_changed"); }