<Swing Dev> RFR: 8252722: More Swing plaf APIs that rely on default constructors

Prasanta Sadhukhan psadhukhan at openjdk.java.net
Fri Sep 18 12:52:24 UTC 2020


Please review a fix for issue where it was seen that several classes in plaf package rely on default constructors as
part of their public API.

It's to be noted that "A no-arg public constructor is generated by the compiler for a class if it does not declare an
explicit constructor. While convenient, this is inappropriate for many kinds of formal classes, both because the
constructor will have no javadoc and because the constructor may be unintended."

For the JDK, classes intended to be used outside of the JDK, public classes in exported packages, should not rely on
default constructors.

Proposed fix is to add explicit public no-arg constructors for public classes and protected no-arg constructor for
protected classes for javax.swing module

-------------

Commit messages:
 - 8252722: More Swing plaf APIs that rely on default constructors

Changes: https://git.openjdk.java.net/jdk/pull/251/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=251&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8252722
  Stats: 457 lines in 36 files changed: 453 ins; 0 del; 4 mod
  Patch: https://git.openjdk.java.net/jdk/pull/251.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/251/head:pull/251

PR: https://git.openjdk.java.net/jdk/pull/251


More information about the swing-dev mailing list