<Swing Dev> [9] Review request for 8032874: ArrayIndexOutOfBoundsException in JTable while clearing data in JTable
Alexander Scherbatiy
alexandr.scherbatiy at oracle.com
Mon Apr 14 13:06:27 UTC 2014
On 4/14/2014 4:33 PM, dmitry markov wrote:
> Alexandr,
>
> Please find my answer below.
>
> Thanks,
> Dmitry
> On 14/04/2014 14:12, Alexander Scherbatiy wrote:
>> On 4/14/2014 10:59 AM, dmitry markov wrote:
>>> Hi Alexandr,
>>>
>>> Thank you for the review. According to the specification in
>>> ListSelectionModel: getAnchorSelectionIndex() and
>>> getLeadSelectionIndex() return the first index and the second index
>>> arguments from the most recent call to setSelectionInterval(),
>>> addSelectionInterval() or removeSelectionInterval(). So if -1 is not
>>> set explicitly via the methods described above, it is correct to
>>> return value which is not -1 even for empty selection. I guess, such
>>> behavior is intended for storing the information about the previous
>>> selection.
>> Is it possible that the lead selection index can be greater than
>> the table row numbers?
> Yes, it is possible. The lead selection index may be greater or equal
> to the row count, (e.g. for case described in the bug the lead index
> is 0 for the empty selection).
What about if there are only 2 row counts in the table but the
lead selection index is 5? Will the convertRowIndexToView(viewLeadIndex)
method
works correctly in this case.
Thanks,
Alexandr.
>>
>> I seems that the getAdjustedIndex(index, row) method checks both
>> these cases.
> That is right. The fix does the same thing as getAdjustedIndex()
> method. Unfortunately we can not use the method in the fix, since if I
> get it right getAdjustedIndex() is designed for work with
> selectionModel, but here we work with modelSelection.
>>
>> Thanks,
>> Alexandr.
>>>
>>>
>>> Thanks,
>>> Dmitry
>>> On 11/04/2014 17:07, Alexander Scherbatiy wrote:
>>>> On 4/11/2014 4:36 PM, dmitry markov wrote:
>>>>> Hello,
>>>>>
>>>>> Could you review the fix for jdk9, please?
>>>>>
>>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8032874
>>>>> webrev:
>>>>> http://cr.openjdk.java.net/~dmarkov/8032874/jdk9/webrev.00/
>>>>>
>>>>> Problem description: If JTable has Sorter and Filter and selected
>>>>> row is removed ArrayIndexOutOfBoundsException will be thrown.
>>>>> Fix: The method restoreSelection() in SortManager class should
>>>>> invoke convertRowIndexToView() only when modelSelection is NOT empty.
>>>>
>>>> Is it the right behavior that
>>>> modelSelection.getLeadSelectionIndex() does not return -1 when
>>>> modelSelection.isSelectionEmpty() is true?
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>>
>>>>> Thanks,
>>>>> Dmitry
>>>>
>>>
>>
>
More information about the swing-dev
mailing list