[ 
https://issues.apache.org/jira/browse/DERBY-3320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12577171#action_12577171
 ] 

Mamta A. Satoor commented on DERBY-3320:
----------------------------------------

Sorry for the brief comment "making sure that Collator can be instantiated for 
the locale on a give JVM ". Let me elaborate on what I am thinking of doing.

Collator class has a method called getAvailableLocales which returns an array 
of locales which are the union of locales supported by the Java runtime and by 
installed CollatorProvider(a subclass of LocaleServiceProvider) 
implementations. 

Locale class also has a method called getAvailableLocales which returns an 
array of locales which are the union of locales supported by the Java runtime 
and by installed LocaleServiceProvider implementations.

So, it appears that the locale arrary returned from 
Collator.getAvailableLocales will be a subset of locale array returned by 
Locale.getAvailableLocales 

What I was thinking of doing was adding a new method (don't know in which class 
at this point) which will go through the arrary returned by 
Collator.getAvailableLocales and see if the locale requested by the user is 
included in the locale arrary. If not, then throw an exception. I was planning 
on calling this method when I find at database create/boot time that user has 
asked for territory based collation.

After thinking more about it, I think it will be better for us to make the new 
method more generic by going through Locale.getAvailableLocales rather than the 
Collator.getAvailableLocales. And then seee if the locale requested by the user 
is inclueded in the locale array. Making the method generic this way will 
enable us to use it for other Derby functionality that uses the database locale 
(some of this functionality has been identified by Dan in his earlier comment 
to this jira entry).

> Database creation and boot should fail if collation=TERRITORY_BASED and the 
> selected locale is not supported
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-3320
>                 URL: https://issues.apache.org/jira/browse/DERBY-3320
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.4.0.0
>         Environment: Java ME:
> Product: phoneME Advanced (phoneme_advanced_mr2-b34)
> Profile: Foundation Profile Specification 1.1
> Linux 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:14:12 EST 2006 i686 athlon i386 
> GNU/Linux
>            Reporter: Vemund Østgaard
>            Assignee: Mamta A. Satoor
>         Attachments: DERBY_3320_Repro.java
>
>
> A problem I've discovered when testing with the phoneME advanced platform is 
> that the collationtests expect other locales than Locale.US to be available 
> on the platform that is used for the test, and for phoneME advanced (when 
> compiled as foundation profile) only Locale.US is available. From the jdk1.6 
> javadoc of Collator.getAvailableLocales() I see that only Locale.US is 
> strictly required:
> public static Locale[] getAvailableLocales()
>     Returns an array of all locales for which the getInstance methods of this 
> class can return localized instances. The returned array represents the union 
> of locales supported by the Java runtime and by installed CollatorProvider 
> implementations. It must contain at least a Locale instance equal to 
> Locale.US.
>     Returns:
>         An array of locales for which localized Collator instances are 
> available.
> This led me to thinking about how Derby should behave if created/booted with 
> collation=TERRITORY_BASED and territory=<some unsupported locale>. I'm not 
> sure what the consequences could be if the database is first created on a 
> platform that supports whatever locale is set and later booted with one that 
> doesn't, or created on a platform missing support and later booted with one 
> that has. In any case I think it may confuse a user needlessly to see the 
> database boot successfully with his collation setting and later behave in a 
> way he does not expect.
> Opinions voiced on the derby-dev list are that both database creation and 
> boot should fail if collation=TERRITORY_BASED and the selected locale is not 
> supported.
> If a change like this is implemented, the collationtests should be changed to 
> verify correct behavior also if they are executed in an environment were some 
> of the tested locales are not supported.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to