<Swing Dev> [9] Review Request: 8048887 SortingFocusTraversalPolicy throws IllegalArgumentException from the sort method
Alexander Zvegintsev
alexander.zvegintsev at oracle.com
Wed Jul 2 10:53:51 UTC 2014
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