<Swing Dev> [10] RFR JDK-8191639:NPE from BasicListUI.Actions.getNextPageIndex
Prasanta Sadhukhan
prasanta.sadhukhan at oracle.com
Tue Nov 28 06:40:37 UTC 2017
Hi Sergey,
On 11/28/2017 3:33 AM, Sergey Bylokhov wrote:
> Hi, Prasanta.
> A few notes about the fix:
> - Can we get an NPE in adjustScrollPositionIfNecessary at
> 2391 list.scrollRectToVisible(cellBounds); Not sure that
> scrollRectToVisible is ready for null.
cellBounds is not null for this call due to this check in
2308 if (cellBounds != null && !visRect.contains(cellBounds)) {
> - I think the assignment below can be simplified
> cellBounds = startRect != null ? startRect : null;
> - In the getNextPageIndex() probably we can "return index"
> immediately instead of additional indentation?
>
Done. Modified webrev
http://cr.openjdk.java.net/~psadhukhan/8191639/webrev.01/
Regards
Prasanta
> On 22/11/2017 03:05, Prasanta Sadhukhan wrote:
>> Hi All,
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8191639
>>
>> It is seen that when JList.locationToIndex() or getCellBounds() is
>> overridden to return -1 or null respectively,
>> it causes NPE when PageUp/PageDown is pressed in JList.
>>
>> From the spec
>> [https://docs.oracle.com/javase/9/docs/api/javax/swing/JList.html#getCellBounds-int-int-]
>>
>> of getCellBounds(), it is seen that it can return null under some
>> circumstances. But, JList jdk code assumes it is always non-null.
>>
>> Proposed fix is to check for null return value of getCellBounds() and
>> bail out.
>> webrev: http://cr.openjdk.java.net/~psadhukhan/8191639/webrev.00/
>>
>> Regards
>> Prasanta
>
>
More information about the swing-dev
mailing list