<Sound Dev> <Beans Dev> RFR: 8155874: Fix java.desktop deprecation warnings about Class.newInstance

Alexandr Scherbatiy alexandr.scherbatiy at oracle.com
Tue Nov 8 09:20:42 UTC 2016


The fix looks good to me.

Thanks,
Alexandr.

On 11/7/2016 10:12 PM, Sergey Bylokhov wrote:
> Looks fine.
>
> On 07.11.16 21:49, Phil Race wrote:
>> bug: https://bugs.openjdk.java.net/browse/JDK-8155874
>> Webrev: http://cr.openjdk.java.net/~prr/8155874/
>>
>> This hits all across the desktop module, hence the cross-post.
>>
>> The Class.newInstance() has been deprecated since it
>> may throw checked exceptions that are not declared.
>>
>> Class.getConstructor().newInstance() was recommended as a
>> replacement but it will return only public constructors.
>>
>> So if you have package access to a package private constructor it will
>> fail where
>> as the previous pattern succeeded
>>
>> So the recommendation now is to use
>> Class.getDeclaredConstructor().newInstance()
>> and this fix uses that except for some cases where we have a limited and
>> known
>> set of internal "service providers" which are known to use public
>> classes and constructors.
>>
>> Also some exception catching has been cleaned up as appropriate for the
>> new method call and taking advantage of the JDK 1.7
>> ReflectiveOperationException
>>
>> -phil.
>>
>
>



More information about the sound-dev mailing list