Hi Sergey/Semyon, >> So I suggest to follow initial intention here, because it is too late >> to add validation of the values. >> - The null value in get() will mean no-selection. >> - The null value passed to set() will clear selection. So I assume we are going with our initial approach.
<<Looks fine. <<Please change the dates in the test header before the push. Note that you need to create a CSR request for the spec update. The code changes are in following webrev. I have made the changes in dates in test header. I will raise a CSR. Webrev: http://cr.openjdk.java.net/~pbansal/5076761/webrev.05/ Regards, Pankaj Bansal -----Original Message----- From: Sergey Bylokhov Sent: Saturday, January 6, 2018 11:46 AM To: Semyon Sadetsky; Pankaj Bansal; swing-dev@openjdk.java.net Subject: Re: <Swing Dev> [11] Review Request: JDK-5076761 : JList.setSelectedValue(null, ...) doesn't do anything On 05/01/2018 18:01, Semyon Sadetsky wrote: > Can you explain what is wrong with the suggested approach? It is > flexible to handle both null and non-null containing JList. Because it is wrong direction try to support some approach which is undefined behavior. The null has a special meaning in JList.getSelectedValue/setSelectedValue() as well as in a few other methods mentioned below. The usage of unspecified null values may result in a run time exception either immediately or at some later time. > > On 01/05/2018 04:25 PM, Sergey Bylokhov wrote: >> I doubt that support of null values in the data model is intentional >> because JList is "A component that displays a list of *objects* and >> allows the user to select one or more items." >> >> The null behavior was not specified and work in most cases because >> some of the getXXX methods in ListModel sub-classes and JList have a >> special meaning of null: >> >> JList.getSelectedValue(): Returns {@code null} if there is no selection. >> ListModel.getElementAt(int index): In most cases implemented to >> return null if index is incorrect. >> >> Similar method TableModel.getValueAt(int,int) is also usually >> implemented to return null if value is not found or some error occured. >> >> JComboBox.setSelectedItem(): use <code>null</code> to clear the >> selection >> ComboBoxModel.setSelectedItem(): <code>null</code> to clear the >> selection >> ComboBoxModel.getSelectedItem(): <code>null</code> if there is no >> selection >> >> So I suggest to follow initial intention here, because it is too late >> to add validation of the values. >> - The null value in get() will mean no-selection. >> - The null value passed to set() will clear selection. >> >> On 05/01/2018 02:15, Pankaj Bansal wrote: >>> Hi Semyon/Sergey, >>> >>> Yes, JList can contain null elements as it can be added to data >>> model. I think this changes a lot in this bug. I think the selection >>> needs to be cleared when the object passed is not present in the >>> list, irrespective of it being null or not. I have made code changes. >>> Please have a look. >>> >>> Webrev: http://cr.openjdk.java.net/~pbansal/5076761/webrev.02/ >>> >>> Regards, >>> Pankaj Bansal >>> >>> -----Original Message----- >>> From: Semyon Sadetsky >>> Sent: Friday, January 5, 2018 6:59 AM >>> To: Pankaj Bansal; swing-dev@openjdk.java.net >>> Subject: Re: <Swing Dev> [11] Review Request: JDK-5076761 : >>> JList.setSelectedValue(null, ...) doesn't do anything >>> >>> Hi Pankaj, >>> >>> Can JList contain null value? >>> >>> --Semyon >>> >>> >>> On 01/02/2018 11:26 PM, Pankaj Bansal wrote: >>>> Hi Sergey, >>>> >>>> Thanks for the review. >>>> >>>> I have made the suggested changes. Please have a look. >>>> webrev: http://cr.openjdk.java.net/~pbansal/5076761/webrev.01/ >>>> >>>> Regards, >>>> Pankaj Bansal >>>> >>>> >>>> -----Original Message----- >>>> From: Sergey Bylokhov >>>> Sent: Wednesday, January 3, 2018 3:31 AM >>>> To: Pankaj Bansal; swing-dev@openjdk.java.net; Prasanta Sadhukhan >>>> Subject: Re: [11] Review Request: JDK-5076761 : >>>> JList.setSelectedValue(null, ...) doesn't do anything >>>> >>>> Hi, Pankaj. >>>> The fix looks fine, but I suggest to update the spec as well and >>>> describe the behavior if "null" value is passed. >>>> >>>> On 02/01/2018 02:07, Pankaj Bansal wrote: >>>>> Hi All, >>>>> >>>>> Please review the fix for JDK 11. >>>>> >>>>> Bug: >>>>> >>>>> https://bugs.openjdk.java.net/browse/JDK-5076761 >>>>> >>>>> Webrev: >>>>> >>>>> http://cr.openjdk.java.net/~pbansal/5076761/webrev.00/ >>>>> >>>>> Issue: >>>>> >>>>> When setSelectedValue is called on JList with null object, it >>>>> should clear all selection. But it is not doing anything. >>>>> >>>>> Fix: >>>>> >>>>> In setSelectedValue if the object is null, the setSelectedIndex is >>>>> called with -1. but this does not clear the selection. We should >>>>> be calling clearSelection instead of SetSelectedIndex. >>>>> >>>>> Regards, >>>>> >>>>> Pankaj Bansal >>>>> >>>> >>>> -- >>>> Best regards, Sergey. >>> >> >> > -- Best regards, Sergey.