<Swing Dev> RFR: JDK-8242808 Fix all remaining deprecation warnings in jdk.hotspot.agent

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Wed Apr 15 10:59:35 UTC 2020


Hi Magnus,

Why can't we just use modelToView2D() to get Rectangle2D and then cast 
to Rectangle tobe used in scrollRectToVisible() or else use 
(int)Rectangle2D.getX(), (int)getY(), getWidth(), getHeight() to 
construct a new Rectangle()?

Regard
Prasanta
On 15-Apr-20 3:35 PM, Magnus Ihse Bursie wrote:
> Hi swing-dev,
>
> Do you have any other suggestions for how to resolve the deprecation 
> of modelToView() in this code?
>
> Basically, the code does this:
>
>        Rectangle rect = source.modelToView(offset);
>        source.scrollRectToVisible(rect);
>
> but scrollRectToVisible() requires a Rectangle (a subtype of 
> Rectangle2D), and modelToView() is deprecated with reference to 
> modelToView2D(), which returns a Rectangle2D, which is thus unusable 
> by scrollRectToVisible(). I also cannot find a way to create a new 
> Rectangle, given a Rectangle2D.
>
> In practice, under the hood, it's still just Rectangles (not 
> Rectangle2D).
>
> /Magnus
>
> On 2020-04-15 11:37, David Holmes wrote:
>> Hi Magnus,
>>
>> This one sounds like it needs a Swing/Java2D developer to review it :)
>>
>> Cheers,
>> David
>>
>> On 15/04/2020 7:13 pm, Magnus Ihse Bursie wrote:
>>> After JDK-8242804, a few places remain which are using deprecated 
>>> methods. They too should be fixed, and the deprecation warning 
>>> should no longer be disabled.
>>>
>>> This patch presupposes the fix for JDK-8242804 has been applied 
>>> (otherwise we cannot turn the deprecation warning back on).
>>>
>>> Some brief comments about each fix:
>>>
>>> * In ConstantPool.java, there was a boxing deprecation that I missed 
>>> in JDK-8242804 (sorry!)
>>>
>>> * In HighPrecisionJScrollBar.java, there is a trivial replacement to 
>>> use BigDecimal.divide with RoundingMode semantics.
>>>
>>> * In SourceCodePanel.java, I settled for suppressing the warning. 
>>> The issue here is that modelToView (which returns a Rectangle) is 
>>> deprecated in favor of modelToView2D, which returns a Rectangle2D 
>>> (which is a supertype of Rectangle). But we use the result in 
>>> scrollRectToVisible, and there exist no version of that which 
>>> accepts a Rectangle2D instead of a Rectangle, nor a way to created a 
>>> Rectangle from a Rectangle2D (that I could find). In practice, this 
>>> is just a game of types -- under the hood, modelToView2D still 
>>> returns a Rectangle (even though it only promises a Rectangle2D). 
>>> The alternative here would be to cast the result of modelToView2D to 
>>> a Rectangle, but I found that less attractive.
>>>
>>> * In JTreeTable.java, I've replaced the use of the old-style 
>>> modifier mask with the new-style extended modifier mask. To the best 
>>> of my understanding, this will just work the same for the code here 
>>> (and for the MouseEvent constructor, using the extended mask is 
>>> actually prescribed).
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8242808
>>> WebRev: 
>>> http://cr.openjdk.java.net/~ihse/JDK-8242808-fix-all-SA-deprecation/webrev.01 
>>>
>>>
>


More information about the serviceability-dev mailing list