[ https://issues.apache.org/jira/browse/LUCENE-6978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15111569#comment-15111569 ]
Uwe Schindler commented on LUCENE-6978: --------------------------------------- Actually, the bug happened on Java 7 only: The empty root locale is not listed in Locale#getAvaialbelLocales in Java 7, but it is listed in Java 8 - ths is why i did not hit that issue and why I removed the code. The commit works around that (like it did before the changes here), by reverting the if-statement. > Make LuceneTestCase use language tags instead of parsing locales by hand > ------------------------------------------------------------------------ > > Key: LUCENE-6978 > URL: https://issues.apache.org/jira/browse/LUCENE-6978 > Project: Lucene - Core > Issue Type: Improvement > Components: modules/test-framework > Reporter: Uwe Schindler > Assignee: Uwe Schindler > Fix For: 5.5, Trunk > > Attachments: LUCENE-6978-5x.patch, LUCENE-6978.patch, > LUCENE-6978.patch, LUCENE-6978.patch > > > Since we are on Java 7, the JDK supports standardized language tags as > identifiers for Locales. Previous versions of JDK were missing a constructor > from {{Locale#toString()}} back to a locale, so we had our own, which was > broken several times after the JDK changed their Locale internals. > This patch will do the following: > - When printing the reproduce line, it will use {{Locale#getLanguageTag()}}, > so you can identify the locale in standardized form. Most notable change is > (next to more flexibility around asian languages) the change away from > undescores. So it prints "en-US", not "en_US". > - The code that parses a locale uses Locale's Builder and sets the language > tag. This will fail if the tag is invalid! A trap is > {{Locale#forLanguageTag}}, because this one silently returns root locale if > unparseable... > - The random locale is choosen from all language tags, which are extracted > from the JDK as a {{String[]}} array. > I would also like to place {{Locale#forLanguageTag}} on the forbidden list > and disallow directly calling {{Locale#toString()}}, the latter is legacy API > (according to Java 7 Javadocs). This would fail code that calls toString() > directly, e.g. when formatting stuff like {{"my Locale: " + locale}}. Of > course we cannot catch all bad uses. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org