| Index: lucene/core/src/test/org/apache/lucene/TestDemo.java |
| =================================================================== |
| --- lucene/core/src/test/org/apache/lucene/TestDemo.java (revision 1330597) |
| +++ lucene/core/src/test/org/apache/lucene/TestDemo.java (working copy) |
| @@ -18,6 +18,7 @@ |
| */ |
| |
| import java.io.IOException; |
| +import java.util.Locale; |
| |
| import org.apache.lucene.analysis.Analyzer; |
| import org.apache.lucene.analysis.MockAnalyzer; |
| @@ -76,4 +77,18 @@ |
| ireader.close(); |
| directory.close(); |
| } |
| + |
| + public void testLocaleRoundTrip() { |
| + for (Locale locale : Locale.getAvailableLocales()) { |
| + String s = locale.toString(); |
| + try { |
| + Locale back = LuceneTestCase.localeForName(s); |
| + assertEquals(locale.toString(), back.toString()); |
| + } catch (Exception e) { |
| + System.err.println("Failed roundtrip: " + s + " (" + e.toString() + ")"); |
| + } catch (AssertionError e) { |
| + System.err.println("Not equals: " + s + " (" + e.toString() + ")"); |
| + } |
| + } |
| + } |
| } |
| Index: lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java |
| =================================================================== |
| --- lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (revision 1330597) |
| +++ lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (working copy) |
| @@ -1352,6 +1352,7 @@ |
| public static Locale localeForName(String localeName) { |
| String elements[] = localeName.split("\\_"); |
| switch(elements.length) { |
| + case 4: /* fallthrough for special cases */ |
| case 3: return new Locale(elements[0], elements[1], elements[2]); |
| case 2: return new Locale(elements[0], elements[1]); |
| case 1: return new Locale(elements[0]); |