JDK 15 RFR of JDK-8230771: Remove terminally deprecated constructors in java.base

Joe Darcy joe.darcy at oracle.com
Mon Dec 9 18:16:54 UTC 2019


Corrected patch:

diff -r 153e5f76551d 
src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java
--- 
a/src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java 
Mon Dec 09 23:00:13 2019 +0530
+++ 
b/src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java 
Mon Dec 09 10:15:44 2019 -0800
@@ -43,8 +43,7 @@
      /**
       * Do not call.
       */
-    @Deprecated(forRemoval=true, since="14")
-    public ConstantBootstraps() {}
+    private ConstantBootstraps() {throw new AssertionError();}

      // implements the upcall from the JVM, 
MethodHandleNatives.linkDynamicConstant:
      /*non-public*/
diff -r 153e5f76551d 
src/java.base/share/classes/java/lang/reflect/Modifier.java
--- a/src/java.base/share/classes/java/lang/reflect/Modifier.java Mon 
Dec 09 23:00:13 2019 +0530
+++ b/src/java.base/share/classes/java/lang/reflect/Modifier.java Mon 
Dec 09 10:15:44 2019 -0800
@@ -46,8 +46,7 @@
      /**
       * Do not call.
       */
-    @Deprecated(forRemoval=true, since="14")
-    public Modifier() {}
+    private Modifier() {throw new AssertionError();}


      /**

-Joe

On 12/9/2019 9:38 AM, Joe Darcy wrote:
> Doh! Will correct. That is why I want to get the no-arg constructor 
> added as a javac warning (JDK-8071961) ;-)
>
> Thanks all for catching this,
>
> -Joe
>
> On 12/9/2019 9:29 AM, Mandy Chung wrote:
>> Good catch!  Daniel also pointed that out.  I overlooked it. It needs 
>> to add back a private no-arg constructor.
>>
>> Mandy
>>
>> On 12/9/19 9:18 AM, Victor Williams Stafusa da Silva wrote:
>>> If you remove the deprecated constructor, the compiler will add a 
>>> default one. Wouldn't it be a better idea to make the deprecated 
>>> constructor private and throwing an exception?
>>>
>>> Em seg., 9 de dez. de 2019 às 14:13, Mandy Chung 
>>> <mandy.chung at oracle.com <mailto:mandy.chung at oracle.com>> escreveu:
>>>
>>>     Looks good.
>>>
>>>     Mandy
>>>
>>>     On 12/8/19 10:58 AM, Joe Darcy wrote:
>>>     > Hello,
>>>     >
>>>     > Please review this small API changes for JDK 15:
>>>     >
>>>     >     JDK-8230771: Remove terminally deprecated constructors in
>>>     java.base
>>>     >     CSR: https://bugs.openjdk.java.net/browse/JDK-8235548
>>>     >     webrev: http://cr.openjdk.java.net/~darcy/8230771.0/
>>>     >
>>>     > Patch below.
>>>     >
>>>     > Thanks,
>>>     >
>>>     > -Joe
>>>     >
>>>     > ---
>>>     >
>>> old/src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java 
>>>
>>>
>>>     > 2019-12-08 10:56:14.223168685 -0800
>>>     > +++
>>>     >
>>> new/src/java.base/share/classes/java/lang/invoke/ConstantBootstraps.java 
>>>
>>>
>>>     > 2019-12-08 10:56:13.999168685 -0800
>>>     > @@ -40,12 +40,6 @@
>>>     >   * @since 11
>>>     >   */
>>>     >  public final class ConstantBootstraps {
>>>     > -    /**
>>>     > -     * Do not call.
>>>     > -     */
>>>     > -    @Deprecated(forRemoval=true, since="14")
>>>     > -    public ConstantBootstraps() {}
>>>     > -
>>>     >      // implements the upcall from the JVM,
>>>     > MethodHandleNatives.linkDynamicConstant:
>>>     >      /*non-public*/
>>>     >      static Object makeConstant(MethodHandle bootstrapMethod,
>>>     > ---
>>> old/src/java.base/share/classes/java/lang/reflect/Modifier.java
>>>     > 2019-12-08 10:56:14.775168685 -0800
>>>     > +++
>>> new/src/java.base/share/classes/java/lang/reflect/Modifier.java
>>>     > 2019-12-08 10:56:14.555168685 -0800
>>>     > @@ -44,13 +44,6 @@
>>>     >   */
>>>     >  public class Modifier {
>>>     >      /**
>>>     > -     * Do not call.
>>>     > -     */
>>>     > -    @Deprecated(forRemoval=true, since="14")
>>>     > -    public Modifier() {}
>>>     > -
>>>     > -
>>>     > -    /**
>>>     >       * Return {@code true} if the integer argument includes the
>>>     >       * {@code public} modifier, {@code false} otherwise.
>>>     >       *
>>>     >
>>>
>>


More information about the core-libs-dev mailing list