<Swing Dev> [10] RFR: 8182577: Crash when Tab key moves focus to a JCheckbox with a custom ButtonModel

Kevin Rushforth kevin.rushforth at oracle.com
Thu Jun 22 12:22:31 UTC 2017


The change to the public API for the ButtonModel interface looks OK to 
me now, but I am not familiar enough with the rest to review it.

Thanks.

-- Kevin


Prasanta Sadhukhan wrote:
> Modified webrev to give default implementation of the new method
>
> http://cr.openjdk.java.net/~psadhukhan/8182577/webrev.03/
>
> Regards
> Prasanta
> On 6/21/2017 8:49 PM, Kevin Rushforth wrote:
>> Two quick comments:
>>
>> 1) Is ButtonModel an interface that applications would ever 
>> implement? If so, then it is an incompatible change, since there is 
>> no default implementation of the new method.
>>
>> 2) You should add the '@since 10' javadoc tag to the new method.
>>
>> -- Kevin
>>
>>
>> Semyon Sadetsky wrote:
>>> Looks good. You will need to have CCC approval before push.
>>>
>>> --Semyon
>>>
>>>
>>> On 06/21/2017 07:55 AM, Prasanta Sadhukhan wrote:
>>>> ok. Modified webrev:
>>>>
>>>> http://cr.openjdk.java.net/~psadhukhan/8182577/webrev.02/
>>>>
>>>> Regards
>>>> Prasanta
>>>> On 6/21/2017 7:45 PM, Semyon Sadetsky wrote:
>>>>> Hi Prasanta,
>>>>>
>>>>> Ii is not necessary to cast to DefaultButtonModel after you add 
>>>>> getGroup() to ButtonModel:
>>>>>
>>>>> 241                 ButtonModel model = 
>>>>> ((JToggleButton)aComponent).getModel();
>>>>>
>>>>> --Semyon
>>>>>
>>>>> On 06/20/2017 10:36 PM, Prasanta Sadhukhan wrote:
>>>>>> Hi Semyon,
>>>>>>
>>>>>> Yes, it seems the problem will be there in that case. Modified to 
>>>>>> have getGroup() in the interface
>>>>>> http://cr.openjdk.java.net/~psadhukhan/8182577/webrev.01/
>>>>>>
>>>>>> Regards
>>>>>> Prasanta
>>>>>> On 6/20/2017 11:16 PM, Semyon Sadetsky wrote:
>>>>>>> Hi Prasanta,
>>>>>>>
>>>>>>> With the DefaultButtonModel we can get the same exception if a 
>>>>>>> custom implementation of the ButtonModel is used.
>>>>>>>
>>>>>>> So, it is better check whether  the model is a 
>>>>>>> DefaultButtonModel and skip if grouping is not supported. Or, 
>>>>>>> perhaps, it is reasonable to pull up the getGroup() into the 
>>>>>>> ButtonModel interface which already has setGroup().
>>>>>>>
>>>>>>> --Semyon
>>>>>>>
>>>>>>>
>>>>>>> On 06/20/2017 10:21 AM, Prasanta Sadhukhan wrote:
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> Please review a fix for an issue where a crash is reported when 
>>>>>>>> focus is moved with custom ButtonModel.
>>>>>>>> Issue was in LayoutFocusTraversalPolicy, the ButtonModel was 
>>>>>>>> wrongly typecasted to JToggleButton when the button model is 
>>>>>>>> DefaultButtonModel, resulting in ClassCastException.
>>>>>>>>
>>>>>>>> Proposed fix is to cast to super class DefaultButtonModel and 
>>>>>>>> then check for JToggleButton member.
>>>>>>>>
>>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8182577
>>>>>>>> webrev: http://cr.openjdk.java.net/~psadhukhan/8182577/webrev.00/
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Prasanta
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>



More information about the swing-dev mailing list