Locale instances are shared by different PMs (when in use as FCO)
-----------------------------------------------------------------

                 Key: JDO-397
                 URL: http://issues.apache.org/jira/browse/JDO-397
             Project: JDO
          Issue Type: Bug
            Reporter: Ilan Kirsh


Tests in org.apache.jdo.tck.models.fieldtypes are using fields of Locale that 
are defined as FCO. The definition is only a hint to the implementation but 
when a FCO is actually used, the same JVM static Locale instances are persisted 
using different PersistenceManagers and tests fail.

The solution:

In org.apache.jdo.tck.models.fieldtypes.TestUtil lines 142-148:
                  case(5):
                      vec.add(0, Locale.CHINA.clone());
                      vec.add(1, Locale.FRANCE.clone());
                      vec.add(2, Locale.GERMANY.clone());
                      vec.add(3, Locale.JAPAN.clone());
                      vec.add(4, Locale.ITALY.clone());
                      break;
similar to cloning strings few lines above:
                  case(3):
                      vec.add(0, new String("Hello"));
                      vec.add(1, new String("Welcome"));
                      vec.add(2, new String("To The"));
                      vec.add(3, new String("Beautiful"));
                      vec.add(4, new String("World"));
                      break;

And also in org.apache.jdo.tck.pc.fieldtypes.AllTypes:

    public static final Locale[] Locale_values = {
        (Locale)Locale.US.clone(),
        (Locale)Locale.UK.clone(),
        (Locale)Locale.FRANCE.clone(),
        (Locale)Locale.GERMANY.clone(),
        (Locale)Locale.CANADA.clone(),
        (Locale)Locale.JAPAN.clone(),
        (Locale)Locale.ITALY.clone(),
        (Locale)Locale.CHINA.clone(),
        (Locale)Locale.KOREA.clone(),
        (Locale)Locale.TAIWAN.clone()
    };

similar to cloning strings few lines above:

    public static final String[] String_values = {
        new String(""), new String("hello world"),
        new String("JDO has a very nice persistence API"), new String("JDO"),
        new String("Java"), new String("abcde"),
        new String("abcdef"), new String("JDO is a breeze to use"),
        new String("Java"), new String("Long-live JDO")
    };


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to