in velocity-tools-view/src/main/java/org/apache/velocity/tools/view/BrowserTool.java [520:551]
public String getPreferredLanguage()
{
if(preferredLanguage != null) return preferredLanguage;
parseAcceptLanguage();
if(languageRangesByQuality.size() == 0)
{
preferredLanguage = starLanguageRange; // may be null
}
else
{
List<List<String>> lists = new ArrayList<List<String>>(languageRangesByQuality.values());
Collections.reverse(lists);
for(List<String> lst : lists) // sorted by quality (treemap)
{
for(String l : lst)
{
preferredLanguage = filterLanguageTag(l);
if(preferredLanguage != null) break;
}
if(preferredLanguage != null) break;
}
}
// fallback
if(preferredLanguage == null)
{
preferredLanguage = filterLanguageTag(languagesFilter == null ? getLocale().getLanguage() : languagesFilter.get(0));
}
// preferredLanguage should now never be null
assert(preferredLanguage != null);
return preferredLanguage;
}