<Swing Dev> [9] Review Request: 8048887 SortingFocusTraversalPolicy throws IllegalArgumentException from the sort method

Anton V. Tarasov anton.tarasov at oracle.com
Wed Jul 2 13:06:48 UTC 2014


Ok, thanks for the review!

Anton.

On 02.07.2014 15:06, Alexander Zvegintsev wrote:
> Disregard my comment about GetBooleanAction, it does not have default value.
>
> Thanks,
>
> Alexander.
>
> On 07/02/2014 02:53 PM, Alexander Zvegintsev wrote:
>> Hi Anton,
>>
>> the fix looks good to me.
>> BTW you can use GetBooleanAction instead of GetPropertyAction.
>>
>>
>> Thanks,
>>
>> Alexander.
>>
>> On 07/01/2014 07:22 PM, Anton V. Tarasov wrote:
>>> Hello,
>>>
>>> Please review a fix:
>>>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8048887
>>> webrev: http://cr.openjdk.java.net/~ant/JDK-8048887/webrev.0
>>>
>>> The problem is that SortingFocusTraversalPolicy uses ROW_TOLERANCE conception to alter a 
>>> disposition of components in a focus cycle for the sake of visually more appropriate traversal 
>>> order. This however breaks the transitivity rule, which in case of using the default tim-sort 
>>> algo leads to an exception.
>>>
>>> We've got a number of complaints filed against this issue, so I eventually agreed to use 
>>> reflection as suggested in JDK-7075600.
>>>
>>> I've tested performance in the following way. In a jframe I was adding up to 10.000 components 
>>> a) at random location (with frame's null Layout) so that to completely untie traversal order 
>>> from container order (hard case for the sort), and b) sequentially, so that to have the 
>>> traversal order pre-sorted. Then I counted time spent in the sorting procedure. The results of 
>>> the legacy merge-sort and the default tim-sort were pretty close. So, the fallback to the legacy 
>>> sorting algo shouldn't hit performance for Swing.
>>>
>>> Just for the case of any unpredictable issue (and for the testing purpose), I left an ability to 
>>> switch to the default tim-sort via setting the (undocumented) "swing.legacySortingFTPEnabled" 
>>> property to false.
>>>
>>> Regards,
>>> Anton.
>>
>




More information about the swing-dev mailing list