Index: lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java =================================================================== --- lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java (revision 1151064) +++ lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java (working copy) @@ -353,6 +353,9 @@ random.setSeed(staticSeed); random.initialized = true; } + + @Deprecated + private static boolean icuTested = false; @BeforeClass public static void beforeClassLuceneTestCaseJ4() { @@ -401,7 +404,23 @@ throw new RuntimeException(e); } } + savedLocale = Locale.getDefault(); + + // START hack to init ICU safely before we randomize locales. + // ICU fails during classloading when a special Java7-only locale is the default + // see: http://bugs.icu-project.org/trac/ticket/8734 + if (!icuTested) { + icuTested = true; + try { + Locale.setDefault(Locale.US); + Class.forName("com.ibm.icu.util.ULocale"); + } catch (ClassNotFoundException cnfe) { + // ignore if no ICU is in classpath + } + } + // END hack + locale = TEST_LOCALE.equals("random") ? randomLocale(random) : localeForName(TEST_LOCALE); Locale.setDefault(locale); savedTimeZone = TimeZone.getDefault();