Uploaded image for project: 'Commons Lang'
  1. Commons Lang
  2. LANG-879

LocaleUtils test fails with new Locale "ja_JP_JP_#u-ca-japanese" of JDK7

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1
    • Fix Version/s: 3.2
    • Component/s: lang.*
    • Environment:

      Mac OS X 10.8.3

      $ javac -version
      javac 1.7.0_17

      $ java -version
      java version "1.7.0_17"
      Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
      Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

      Description

      The Test below fails with the following error on JDK7, but succeeds on JDK6:

      testAllLocales
      "java.lang.AssertionError:
      Expected: <ja_JP_JP_#u-ca-japanese>
      but: was <ja_JP_JP_#u-ca-japanese>
      at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
      at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8)
      at com.scispike.foundation.test.unit.i18n.LocaleStringConverterTest.testStringToLocale(LocaleStringConverterTest.java:20)
      at com.scispike.foundation.test.unit.i18n.LocaleStringConverterTest.testAllLocales(LocaleStringConverterTest.java:28)
      at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76)
      at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161)
      at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101)
      at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115)
      at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
      at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
      at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
      at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)
      at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)
      ... Removed 25 stack frames
      java.lang.AssertionError:
      Expected: <ja_JP_JP_#u-ca-japanese>
      but: was <ja_JP_JP_#u-ca-japanese>
      at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
      at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8)
      at com.scispike.foundation.test.unit.i18n.LocaleStringConverterTest.testStringToLocale(LocaleStringConverterTest.java:20)
      at com.scispike.foundation.test.unit.i18n.LocaleStringConverterTest.testAllLocales(LocaleStringConverterTest.java:28)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
      at org.testng.internal.Invoker.invokeMethod(Invoker.java:715)
      at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:907)
      at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1237)
      at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
      at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
      at org.testng.TestRunner.privateRun(TestRunner.java:767)
      at org.testng.TestRunner.run(TestRunner.java:617)
      at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
      at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
      at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
      at org.testng.SuiteRunner.run(SuiteRunner.java:240)
      at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:51)
      at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:85)
      at org.testng.TestNG.runSuitesSequentially(TestNG.java:1197)
      at org.testng.TestNG.runSuitesLocally(TestNG.java:1122)
      at org.testng.TestNG.run(TestNG.java:1030)
      at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76)
      at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161)
      at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101)
      at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
      at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
      at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
      at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)
      at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)
      "
      org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
      org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8)
      com.scispike.foundation.test.unit.i18n.LocaleStringConverterTest.testStringToLocale(LocaleStringConverterTest.java:20)
      com.scispike.foundation.test.unit.i18n.LocaleStringConverterTest.testAllLocales(LocaleStringConverterTest.java:28)
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      java.lang.reflect.Method.invoke(Method.java:601)
      org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
      org.testng.internal.Invoker.invokeMethod(Invoker.java:715)
      org.testng.internal.Invoker.invokeTestMethod(Invoker.java:907)
      org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1237)
      org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
      org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
      org.testng.TestRunner.privateRun(TestRunner.java:767)
      org.testng.TestRunner.run(TestRunner.java:617)
      org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
      org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
      org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
      org.testng.SuiteRunner.run(SuiteRunner.java:240)
      org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:51)
      org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:85)
      org.testng.TestNG.runSuitesSequentially(TestNG.java:1197)
      org.testng.TestNG.runSuitesLocally(TestNG.java:1122)
      org.testng.TestNG.run(TestNG.java:1030)
      org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:76)
      org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.executeMulti(TestNGDirectoryTestSuite.java:161)
      org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:101)
      org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:115)
      sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      java.lang.reflect.Method.invoke(Method.java:601)
      org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
      org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
      org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
      org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)
      org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74)

      ========== Test
      import static org.hamcrest.MatcherAssert.assertThat;
      import static org.hamcrest.Matchers.equalTo;

      import java.util.Locale;

      import org.testng.annotations.Test;

      import com.scispike.foundation.i18n.StringToLocaleConverter;

      public class LocaleStringConverterTest {

      StringToLocaleConverter converter = new StringToLocaleConverter();

      public void testStringToLocale(Locale l)

      { String s = l.toString(); assertThat(converter.convert(s), equalTo(l)); }

      @Test
      public void testAllLocales() {

      Locale[] locales = Locale.getAvailableLocales();
      for (Locale l : locales)

      { testStringToLocale(l); }

      }
      }

      ========== StringToLocaleConverter

      import java.util.Locale;

      import org.apache.commons.lang3.LocaleUtils;
      import org.springframework.core.convert.converter.Converter;

      public class StringToLocaleConverter implements Converter<String, Locale> {

      @Override
      public Locale convert(String source) {
      if (source == null)

      { return LocaleToStringConverter.DEFAULT; }

      return LocaleUtils.toLocale(source);
      }
      }

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                matthewadams Matthew T. Adams
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: