You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by sc...@apache.org on 2005/10/08 11:55:30 UTC

svn commit: r307279 - in /jakarta/commons/proper/lang/trunk/src: java/org/apache/commons/lang/LocaleUtils.java test/org/apache/commons/lang/LocaleUtilsTest.java

Author: scolebourne
Date: Sat Oct  8 02:55:25 2005
New Revision: 307279

URL: http://svn.apache.org/viewcvs?rev=307279&view=rev
Log:
Handle differences between JDK1.3 and JDK1.4

Modified:
    jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/LocaleUtils.java
    jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/LocaleUtilsTest.java

Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/LocaleUtils.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/LocaleUtils.java?rev=307279&r1=307278&r2=307279&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/LocaleUtils.java (original)
+++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/LocaleUtils.java Sat Oct  8 02:55:25 2005
@@ -70,11 +70,15 @@
      * locale object from it.</p>
      *
      * <pre>
-     *   LocaleUtils.toLocale("en")     = new Locale("en", "")
-     *   LocaleUtils.toLocale("en_GB")  = new Locale("en", "GB")
-     *   LocaleUtils.toLocale("en_GB_xxx")  = new Locale("en", "GB", "xxx")
+     *   LocaleUtils.toLocale("en")         = new Locale("en", "")
+     *   LocaleUtils.toLocale("en_GB")      = new Locale("en", "GB")
+     *   LocaleUtils.toLocale("en_GB_xxx")  = new Locale("en", "GB", "xxx")   (#)
      * </pre>
-     * 
+     *
+     * <p>(#) The behaviour of the JDK variant constructor changed between JDK1.3 and JDK1.4.
+     * In JDK1.3, the constructor upper cases the variant, in JDK1.4, it doesn't.
+     * Thus, the result from getVariant() may vary depending on your JDK.</p>
+     *
      * <p>This method validates the input strictly.
      * The language code must be lowercase.
      * The country code must be uppercase.

Modified: jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/LocaleUtilsTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/LocaleUtilsTest.java?rev=307279&r1=307278&r2=307279&view=diff
==============================================================================
--- jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/LocaleUtilsTest.java (original)
+++ jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/LocaleUtilsTest.java Sat Oct  8 02:55:25 2005
@@ -220,9 +220,16 @@
      * Test toLocale() method.
      */
     public void testToLocale_3Part() {
-        assertValidToLocale("us_EN_a", "us", "EN", "a");
         assertValidToLocale("us_EN_A", "us", "EN", "A");
-        assertValidToLocale("us_EN_SFsafdFDsdfF", "us", "EN", "SFsafdFDsdfF");
+        // this isn't pretty, but was caused by a jdk bug it seems
+        // http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4210525
+        if (SystemUtils.isJavaVersionAtLeast(1.4f)) {
+            assertValidToLocale("us_EN_a", "us", "EN", "a");
+            assertValidToLocale("us_EN_SFsafdFDsdfF", "us", "EN", "SFsafdFDsdfF");
+        } else {
+            assertValidToLocale("us_EN_a", "us", "EN", "A");
+            assertValidToLocale("us_EN_SFsafdFDsdfF", "us", "EN", "SFSAFDFDSDFF");
+        }
         
         try {
             LocaleUtils.toLocale("us_EN-a");
@@ -272,7 +279,7 @@
             new Locale[] {
                 LOCALE_EN_US_ZZZZ,
                 LOCALE_EN_US,
-                new Locale("en", "")});
+                LOCALE_EN});
     }        
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org