<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