<AWT Dev> [12]RFR : JDK-8014503: AWT Choice implementation should be made consistent across platforms.

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Thu Jul 5 14:40:26 UTC 2018


Hi, Krishna
If I read the code in LWChoicePeer.java file correctly, then you can fix 
the problem by dropping the method below in JComboBoxDelegate class:

         /**
          * We should post ITEM_STATE_CHANGED event when the same element is
          * reselected.
          */
         @Override
         public void setSelectedItem(final Object anObject) {


Are you sure that storing the index of the selected element in 
XChoicePeer class is enough? Because the element itself at this index 
may change.


On 04/07/2018 13:48, Krishna Addepalli wrote:
> Hi Prasanta/Sergey,
> 
> Could you review this ?
> 
> @Ajit, Shashi – Thanks for your review.
> 
> Thanks,
> 
> Krishna
> 
> *From:* Ajit Ghaisas
> *Sent:* Tuesday, July 3, 2018 3:31 PM
> *To:* Krishna Addepalli <krishna.addepalli at oracle.com>; Shashidhara 
> Veerabhadraiah <shashidhara.veerabhadraiah at oracle.com>; 
> awt-dev at openjdk.java.net
> *Subject:* RE: <AWT Dev> [12]RFR : JDK-8014503: AWT Choice 
> implementation should be made consistent across platforms.
> 
> Hi Krishna,
> 
> Thanks for the explanation. Changes look good.
> 
> You will need a ‘R’ reviewer to review this though.
> 
> Regards,
> 
> Ajit
> 
> *From:* Krishna Addepalli
> *Sent:* Tuesday, July 03, 2018 2:20 PM
> *To:* Ajit Ghaisas; Shashidhara Veerabhadraiah; awt-dev at openjdk.java.net 
> <mailto:awt-dev at openjdk.java.net>
> *Subject:* RE: <AWT Dev> [12]RFR : JDK-8014503: AWT Choice 
> implementation should be made consistent across platforms.
> 
> Hi Ajit,
> 
> I don’t think we can use ‘skipPostMessage’ for this check for the 
> following reasons:
> 
> 1.‘skipPostMessage’ is intended to filter out item unselected messages, 
> which are posted in case of JComboBox.
> 
> 2.I need to store the previously selected index to compare against the 
> current index, and I’ll need to change the skipPostMessage to integer 
> type – although doable, will be a maintenance headache.
> 
> 3.As much as I have seen, skipPostMessage variable is restored to false 
> in the same function call (select and remove), whereas for 
> selectedIndex, this won’t be the case.
> 
> 4.Also, remove function is not called from here, but from outside. So, 
> the state will clash, when I save the last selected index, and 
> immediately remove gets called.
> 
> Hope this clarifies.
> 
> Thanks,
> 
> Krishna
> 
> *From:* Ajit Ghaisas
> *Sent:* Tuesday, July 3, 2018 1:15 PM
> *To:* Shashidhara Veerabhadraiah <shashidhara.veerabhadraiah at oracle.com 
> <mailto:shashidhara.veerabhadraiah at oracle.com>>; Krishna Addepalli 
> <krishna.addepalli at oracle.com <mailto:krishna.addepalli at oracle.com>>; 
> awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
> *Subject:* RE: <AWT Dev> [12]RFR : JDK-8014503: AWT Choice 
> implementation should be made consistent across platforms.
> 
> Can we use existing ‘skipPostMessage’ member for this check instead of 
> introducing additional member in LWChoicePeer class?
> 
> *From:* Shashidhara Veerabhadraiah
> *Sent:* Tuesday, July 03, 2018 12:16 PM
> *To:* Krishna Addepalli; awt-dev at openjdk.java.net 
> <mailto:awt-dev at openjdk.java.net>
> *Subject:* Re: <AWT Dev> [12]RFR : JDK-8014503: AWT Choice 
> implementation should be made consistent across platforms.
> 
> Hi Krishna, The changes looks fine.
> 
> Please don’t forget to add the bug id to the test before the push. And 
> add this bug JDK-8197810 “as relate to” the current bug(in bug db).
> 
> Thanks and regards,
> 
> Shashi
> 
> *From:* Krishna Addepalli
> *Sent:* Tuesday, July 3, 2018 8:00 AM
> *To:* Shashidhara Veerabhadraiah <shashidhara.veerabhadraiah at oracle.com 
> <mailto:shashidhara.veerabhadraiah at oracle.com>>; 
> awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
> *Subject:* RE: <AWT Dev> [12]RFR : JDK-8014503: AWT Choice 
> implementation should be made consistent across platforms.
> 
> Hi Shashi,
> 
> Thanks for the review. Here is the updated webrev: 
> http://cr.openjdk.java.net/~kaddepalli/8014503/webrev01/
> 
> As for the test, it has already been corrected and pushed in JDK-8197810.
> 
> Thanks,
> 
> Krishna
> 
> *From:* Shashidhara Veerabhadraiah
> *Sent:* Monday, July 2, 2018 11:30 PM
> *To:* Krishna Addepalli <krishna.addepalli at oracle.com 
> <mailto:krishna.addepalli at oracle.com>>; awt-dev at openjdk.java.net 
> <mailto:awt-dev at openjdk.java.net>
> *Subject:* RE: <AWT Dev> [12]RFR : JDK-8014503: AWT Choice 
> implementation should be made consistent across platforms.
> 
> Hi Krishna, Below are the comments on the fix that you made.
> 
> 1.Based on the getSelectedIndex(), I think the selectedIndex should be 
> initialized to -1. 0 seems to be a valid value.
> 
> 2.A test may be required to test out the behavior because as per the 
> comment in the bug, the test SelecteCurrentItemTest.html should fail now 
> on all platforms since the passing platforms software was changed.
> 
> Other than that the changes looks fine.
> 
> Thanks and regards,
> shashi
> 
> *From:* Krishna Addepalli
> *Sent:* Monday, July 2, 2018 3:10 PM
> *To:* awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
> *Subject:* <AWT Dev> [12]RFR : JDK-8014503: AWT Choice implementation 
> should be made consistent across platforms.
> 
> Hi All,
> 
> Please review a fix for JDK-8014503: 
> https://bugs.openjdk.java.net/browse/JDK-8014503
> 
> Webrev: http://cr.openjdk.java.net/~kaddepalli/8014503/webrev00/
> 
> On Windows, the default behavior has been changed to not send an 
> ItemEvent, if the same item is selected again, whereas this was not 
> changed for Mac and Linux.
> 
> This fix changes that behavior, and makes it consistent for all the 
> three platforms.
> 
> Thanks,
> 
> Krishna
> 


-- 
Best regards, Sergey.


More information about the awt-dev mailing list