<AWT Dev> <Swing Dev> [9] Review Request: 8143077 Deprecate InputEvent._MASK in favor of InputEvent._DOWN_MASK

Semyon Sadetsky semyon.sadetsky at oracle.com
Thu Oct 20 07:04:11 UTC 2016



On 19.10.2016 17:43, Sergey Bylokhov wrote:
> On 19.10.16 9:58, Semyon Sadetsky wrote:
>>> On 17.10.16 21:47, Semyon Sadetsky wrote:
>>>>> It can be replaced if it will be used in pair with getModifiersEx().
>>>>> The old getModifiers() is also deprecated. And javadoc for
>>>>> getModifiersEx() describes what and how constants should be used.
>>>> Can you add link to getModifiersEx() to all those constants' specs?
>>>
>>> I assume you mean the new _DOWN constants not the old?
>> I meant that deprecated message should be transparently explaining the
>> impact of the replacement.
>> The proposed specs change recommends to use a replacement which is not
>> equivalent to the deprecated API. And that is the reason why you don't
>> like to eliminate all old API usages in the JDK code as a part of the
>> fix, if I correctly understand you previous reply in this thread.
>> Since you are insisting that migrating to the new API is risky it is
>> worth let the user know about that risk as well.
>
> What does it mean risky? The new API is safe, but it is not safe to 
> just find+replace the old constants to the new one, because it will be 
> necessary to check how they are used. 
The same is necessary for the user code. Look at the spec you propose:

   63     /**
   64      * The Shift key modifier constant.
   65      *
   66      * @deprecated It is recommended that SHIFT_DOWN_MASK be used 
instead.
   67      */
   68     @Deprecated(since = "9")
   69     public static final int SHIFT_MASK = Event.SHIFT_MASK;

After your fix developer gets deprecation warning, read your 
recommendation and simply replace SHIFT_MASK with SHIFT_DOWN_MASK which 
may cause wrong app behavior. You should add something to the spec to 
make developer pay attention.

> We already have a notions that these "extended modifier constant" 
> should be used in the constructor of InputEvent and moreover in spec 
> of getModifiersEx() we have an additional examples how to use this 
> constants. This is why we will have a reference from old constans to 
> the new, and from getModifiers() to the getModifiersEx();
>
>>>>>>>>>> And, please, limit the length of the changed line in 
>>>>>>>>>> VMPanel.java
>>>>>>>>>> to 80
>>>>>>>>>> chars.
>>>>>>>>>>>
>>>>>>>>>>>>>> On 10/2/2016 4:53 PM, Sergey Bylokhov wrote:
>>>>>>>>>>>>>>> Thanks for the comments.
>>>>>>>>>>>>>>> The new version:
>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~serb/8143077/webrev.01
>>>>>>>>>>>>>>> The specification of Event class and
>>>>>>>>>>>>>>> InputEvent.getModifiers()
>>>>>>>>>>>>>>> are
>>>>>>>>>>>>>>> updated.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On 30.09.16 19:08, Jonathan Bluett-Duncan wrote:
>>>>>>>>>>>>>>>> Hi Sergey,
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I'm not a reviewer, but after reading the deprecation
>>>>>>>>>>>>>>>> messages in
>>>>>>>>>>>>>>>> Event.java
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     * @deprecated It is recommended that {@code AWTEvent}
>>>>>>>>>>>>>>>> class
>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>> its
>>>>>>>>>>>>>>>>     subclasses
>>>>>>>>>>>>>>>>     *             be used instead.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I get the impression they would read better without the
>>>>>>>>>>>>>>>> redundant
>>>>>>>>>>>>>>>> "class" in the middle, like so.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     * @deprecated It is recommended that {@code AWTEvent}
>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>> its
>>>>>>>>>>>>>>>> subclasses
>>>>>>>>>>>>>>>>     *             be used instead.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Kind regards,
>>>>>>>>>>>>>>>> Jonathan
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 30 September 2016 at 16:45, Sergey Bylokhov
>>>>>>>>>>>>>>>> <Sergey.Bylokhov at oracle.com
>>>>>>>>>>>>>>>> <mailto:Sergey.Bylokhov at oracle.com>>
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     Hello.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     Please review the fix for jdk9.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     This is request to deprecate the obsolete flags inside
>>>>>>>>>>>>>>>> InputEvent.
>>>>>>>>>>>>>>>>     This constants were marked as obsolete in jdk1.4 and
>>>>>>>>>>>>>>>> were
>>>>>>>>>>>>>>>> replaced
>>>>>>>>>>>>>>>>     by the new one. In jdk1.4 the documentation were 
>>>>>>>>>>>>>>>> update
>>>>>>>>>>>>>>>> with
>>>>>>>>>>>>>>>> notion
>>>>>>>>>>>>>>>>     that the new constants should be used. And this bug is
>>>>>>>>>>>>>>>> about
>>>>>>>>>>>>>>>>     official deprecation of them.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     We can replace old constants by the new one in the 
>>>>>>>>>>>>>>>> whole
>>>>>>>>>>>>>>>> jdk,
>>>>>>>>>>>>>>>> but I
>>>>>>>>>>>>>>>>     updated only the code in InputEvent to make change
>>>>>>>>>>>>>>>> smaller and
>>>>>>>>>>>>>>>>     safer. So at least the new code in jdk and the code in
>>>>>>>>>>>>>>>> applications
>>>>>>>>>>>>>>>>     will start to use the new constants.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     The changes in jconsole are necessary to fix 
>>>>>>>>>>>>>>>> deprecation
>>>>>>>>>>>>>>>> warning.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     jprt build passed, no new issues were found by 
>>>>>>>>>>>>>>>> jck/jtreg
>>>>>>>>>>>>>>>> tests.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     Bug: https://bugs.openjdk.java.net/browse/JDK-8143077
>>>>>>>>>>>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8143077>
>>>>>>>>>>>>>>>>     Webrev can be found at:
>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~serb/8143077/webrev.00
>>>>>>>>>>>>>>>> <http://cr.openjdk.java.net/~serb/8143077/webrev.00>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>     --
>>>>>>>>>>>>>>>>     Best regards, Sergey.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>



More information about the awt-dev mailing list