Hello,

I'm not positive serviceability-dev is the best alias for this review; if not, please direct me elsewhere.

In any case, please review the changes and CSR for:

    JDK-8250583: Address reliance on default constructors in java.management
    webrev: http://cr.openjdk.java.net/~darcy/8250583.0/
    CSR: https://bugs.openjdk.java.net/browse/JDK-8250584

(This is part of a larger library clean-up effort to remove reliance on default constructors in the JDK ahead of a new javac lint warning, JDK-8071961.)

Generally the changes adds a public no-arg constructor equivalent to the implicit default constructor. In the case of RoleStatus, since it doesn't seem that the class should have a public constructor at all, I terminally deprecated the constructor.

Patch below.

Thanks,

-Joe

--- old/src/java.management/share/classes/javax/management/AttributeChangeNotificationFilter.java 2020-07-25 08:53:04.404999999 -0700 +++ new/src/java.management/share/classes/javax/management/AttributeChangeNotificationFilter.java 2020-07-25 08:53:03.720999999 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,10 @@
      */
     private Vector<String> enabledAttributes = new Vector<String>();

+    /**
+     * Constructs an {@code AttributeChangeNotificationFilter}.
+     */
+    public AttributeChangeNotificationFilter() {}

     /**
      * Invoked before sending the specified notification to the listener.
--- old/src/java.management/share/classes/javax/management/DefaultLoaderRepository.java 2020-07-25 08:53:05.472999999 -0700 +++ new/src/java.management/share/classes/javax/management/DefaultLoaderRepository.java 2020-07-25 08:53:04.812999999 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,11 @@
 @Deprecated
 public class DefaultLoaderRepository {
     /**
+     * Constructs an {@code DefaultLoaderRepository}.
+     */
+    public DefaultLoaderRepository() {}
+
+    /**
      * Go through the list of class loaders and try to load the requested class.
      * The method will stop as soon as the class is found. If the class
      * is not found the method will throw a <CODE>ClassNotFoundException</CODE> --- old/src/java.management/share/classes/javax/management/NotificationFilterSupport.java 2020-07-25 08:53:06.584999999 -0700 +++ new/src/java.management/share/classes/javax/management/NotificationFilterSupport.java 2020-07-25 08:53:05.876999999 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,11 @@


     /**
+     * Constructs a {@code NotificationFilterSupport}.
+     */
+    public NotificationFilterSupport() {}
+
+    /**
      * Invoked before sending the specified notification to the listener.
      * <BR>This filter compares the type of the specified notification with each enabled type.
      * If the notification type matches one of the enabled types,
--- old/src/java.management/share/classes/javax/management/QueryEval.java 2020-07-25 08:53:07.704999999 -0700 +++ new/src/java.management/share/classes/javax/management/QueryEval.java 2020-07-25 08:53:07.004999999 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,11 @@
         new InheritableThreadLocal<MBeanServer>();

     /**
+     * Constructor for subclasses to call.
+     */
+    public QueryEval() {}
+
+    /**
      * <p>Sets the MBean server on which the query is to be performed.
      * The setting is valid for the thread performing the set.
      * It is copied to any threads created by that thread at the moment
--- old/src/java.management/share/classes/javax/management/loading/DefaultLoaderRepository.java 2020-07-25 08:53:08.824999999 -0700 +++ new/src/java.management/share/classes/javax/management/loading/DefaultLoaderRepository.java 2020-07-25 08:53:08.124999999 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,11 @@
 public class DefaultLoaderRepository {

     /**
+     * Constructs a {@code DefaultLoaderRepository}.
+     */
+    public DefaultLoaderRepository() {}
+
+    /**
      * Go through the list of class loaders and try to load the requested
      * class.
      * The method will stop as soon as the class is found. If the class
--- old/src/java.management/share/classes/javax/management/monitor/Monitor.java 2020-07-25 08:53:09.916999999 -0700 +++ new/src/java.management/share/classes/javax/management/monitor/Monitor.java 2020-07-25 08:53:09.244999999 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -76,6 +76,11 @@
     extends NotificationBroadcasterSupport
     implements MonitorMBean, MBeanRegistration {

+    /**
+     * Constructor for subclasses to call.
+     */
+    public Monitor() {}
+
     /*
      * ------------------------------------------
      *  PACKAGE CLASSES
--- old/src/java.management/share/classes/javax/management/relation/RoleStatus.java 2020-07-25 08:53:11.060999999 -0700 +++ new/src/java.management/share/classes/javax/management/relation/RoleStatus.java 2020-07-25 08:53:10.384999999 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,12 @@
  */
 public class RoleStatus {

+    /**
+     * Do not call.
+     */
+    @Deprecated(since="16", forRemoval=true)
+    public RoleStatus() {}
+
     //
     // Possible problems
     //

Reply via email to