Hi Sergey,

Thank you for the review. You suggested a really good solution for the issue.
I have updated the fix based on your recommendation. The new version is located 
at http://cr.openjdk.java.net/~dmarkov/8163979/webrev.02/

Thanks,
Dmitry
> On 13 Feb 2017, at 20:22, Sergey Bylokhov <sergey.bylok...@oracle.com> wrote:
> 
> Hi, Dmitry.
> Probably we can reuse Java_sun_lwawt_macosx_CInputMethod_getNativeLocale?
> 
> And change the java code in the CInputMethodDescriptor to something like:
> 
>    static Object[] getAvailableLocalesInternal() {
>        List<?> workList = nativeGetAvailableLocales();
>       Locale nativeLocale = CIM.getNativeLocale()
> 
>        if (workList == null && nativeLocale == null)) {
>               return new Object[] {
>                   Locale.getDefault()
>               };
>       }
>       if(workList != null && !workList.isEmpty() && nativeLocale == null) {
>            return workList.toArray();
>        }
>       if((workList == null || workList.isEmpty()) && nativeLocale != null) {
>               return new Object[] {
>                   nativeLocale;
>               };
>        }
>       if (!workList.contains(nativeLocale)){
>               workList.add(nativeLocale);
>       }
>        return workList.toArray();
>    }
> 
> 
>> 
>> I am sorry, I sent the incorrect version of the fix, (i.e. 
>> http://cr.openjdk.java.net/~dmarkov/8163979/webrev.00/). It releases 
>> currenLocale two times.
>> The correct version is located at 
>> http://cr.openjdk.java.net/~dmarkov/8163979/webrev.01/
>> Could you review the updated fix, please?
>> 
>> Thanks,
>> Dmitry
>>> On 13 Feb 2017, at 16:58, Dmitry Markov <dmitry.mar...@oracle.com> wrote:
>>> 
>>> Hello,
>>> 
>>> Could you review a fix for jdk9, please?
>>> 
>>>     bug: https://bugs.openjdk.java.net/browse/JDK-8163979
>>>     webrev: http://cr.openjdk.java.net/~dmarkov/8163979/webrev.00/
>>> 
>>> Problem description:
>>> If the current keyboard layout is set to non-default value, (e.g. ABC, ABC 
>>> Extended, etc) during Java launch, the input method functionality is not 
>>> initialised correctly and may not work for some input methods, (e.g. 
>>> OpenVanilla input method). The initialisation problems are caused by 
>>> nativeGetAvailableLocales() function from CInputMethod.m. The function 
>>> tries to obtain the list of available input method locales using platform 
>>> API. If the retrieval is failed for some reason, 
>>> nativeGetAvailableLocales() returns empty list or null.
>>> 
>>> Fix:
>>> The function nativeGetAvailableLocales() should return the list contained 
>>> the current input method locale, if it cannot retrieve the list of 
>>> available locales from the platform.
>>> 
>>> 
>>> Thanks,
>>> Dmitry
>> 
> 

Reply via email to