You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/10/16 17:45:10 UTC
svn commit: r1184851 -
/lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
Author: rmuir
Date: Sun Oct 16 15:45:10 2011
New Revision: 1184851
URL: http://svn.apache.org/viewvc?rev=1184851&view=rev
Log:
LUCENE-3521: revert the revert of the hack in LuceneTestCase because ICU still has bugs with java7
Modified:
lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
Modified: lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java?rev=1184851&r1=1184850&r2=1184851&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java Sun Oct 16 15:45:10 2011
@@ -324,6 +324,9 @@ public abstract class LuceneTestCase ext
random.setSeed(staticSeed);
random.initialized = true;
}
+
+ @Deprecated
+ private static boolean icuTested = false;
@BeforeClass
public static void beforeClassLuceneTestCaseJ4() {
@@ -376,6 +379,20 @@ public abstract class LuceneTestCase ext
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();