code: protected List<Pair<String, Resource>> calculateAllFilenames(final String basename, final Locale locale) {
  	    Pair<String, Locale> cacheKey = new Pair<String, Locale>(basename, locale);
  	    return CacheEntry.getValue(cachedFilenames, cacheKey, cacheMillis, new Callable<List<Pair<String, Resource>>>() {
      	    @Override
      	    public List<Pair<String, Resource>> call() throws Exception {
                  List<String> filenames = new ArrayList<String>(7);
                  filenames.addAll(calculateFilenamesForLocale(basename, locale));
                  if (fallbackToSystemLocale && !locale.equals(Locale.getDefault())) {
                      List<String> fallbackFilenames = calculateFilenamesForLocale(basename, Locale.getDefault());
                      for (String fallbackFilename : fallbackFilenames) {
                          if (!filenames.contains(fallbackFilename)) {
                              // Entry for fallback locale that isn't already in filenames list.
                              filenames.add(fallbackFilename);
                          }
                      }
                  }
                  filenames.add(basename);
                  List<Pair<String, Resource>> filenamesAndResources = new ArrayList<Pair<String,Resource>>(filenames.size());
                  for(String filename : filenames) {
                      filenamesAndResources.add(new Pair<String, Resource>(filename, locateResource(filename)));
                  }
                  return filenamesAndResources;
      	    }
  	    });
  	}
docs: Calculate all filenames for the given bundle basename and Locale.
  Will calculate filenames for the given Locale, the system Locale
  (if applicable), and the default file.
  @param basename the basename of the bundle
  @param locale the locale
  @return the List of filenames to check
  @see #setFallbackToSystemLocale
  @see #calculateFilenamesForLocale