[ https://issues.apache.org/jira/browse/JDO-397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Craig Russell resolved JDO-397. ------------------------------- Resolution: Fixed The 2.1 specification now states: Portable JDO applications must not depend on SCO or FCO uniquing behavior, nor on the storage mechanism in the datastore. Portable applications may use the same instance of these classes as field values in any persistence-capable class instance. This should resolve this issue. > Locale instances are shared by different PMs (when in use as FCO) > ----------------------------------------------------------------- > > Key: JDO-397 > URL: https://issues.apache.org/jira/browse/JDO-397 > Project: JDO > Issue Type: Bug > Components: specification, tck2 > Affects Versions: JDO 2 final > Reporter: Ilan Kirsh > Assignee: Craig Russell > Fix For: JDO 2 maintenance release 1 > > > 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. - You can reply to this email to add a comment to the issue online.