Looks fine.
>
> Thank you, Phil. I have updated the fix based on your suggestion. Please find
> the new version here: http://cr.openjdk.java.net/~dmarkov/8163979/webrev.03/
> <http://cr.openjdk.java.net/~dmarkov/8163979/webrev.03/>
>
> Thanks,
> Dmitry
>> On 14 Feb 2017, at 01:54, Phil Race <philip.r...@oracle.com
>> <mailto:philip.r...@oracle.com>> wrote:
>>
>> 63 if (workList == null || (workList != null &&
>> workList.isEmpty())) {
>>
>>
>> I think we can safely write just :
>>
>> if (workList == null || workList.isEmpty()) {
>>
>> Other than that it seems fine.
>>
>> -phil.
>>
>> On 02/13/2017 11:43 AM, Dmitry Markov wrote:
>>> 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/
>>> <http://cr.openjdk.java.net/~dmarkov/8163979/webrev.02/>
>>>
>>> Thanks,
>>> Dmitry
>>>> On 13 Feb 2017, at 20:22, Sergey Bylokhov <sergey.bylok...@oracle.com>
>>>> <mailto: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/
>>>>> <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/
>>>>> <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>
>>>>>> <mailto:dmitry.mar...@oracle.com> wrote:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> Could you review a fix for jdk9, please?
>>>>>>
>>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8163979
>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8163979>
>>>>>> webrev: http://cr.openjdk.java.net/~dmarkov/8163979/webrev.00/
>>>>>> <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
>>
>