JDK-8283704 : Add sealed modifier to java.awt.MultipleGradientPaint
  • Type: Enhancement
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 19
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2022-03-25
  • Updated: 2022-04-18
  • Resolved: 2022-04-15
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 19
19 masterFixed
Related Reports
CSR :  
Relates :  
Description
JDK 17 delivered JEP 409: Sealed Classes : https://openjdk.java.net/jeps/409
As well as being used for future classes this can be retrofitted to
suitable existing API classes where provably there can be no application
sub-classes since there are no public or protected constructors and
at least one package access constructor

A scan for these has identified various classes in the desktop module as candidates
Some of these turn out to have no subclasses and these should be marked final instead
of sealed.

Not all classes that can be sealed may be worth the effort or seem appropriate
They maybe classes that simply happen to have a limited set of subclasses
currently defined but have no natural set, and absence of public and protected constructors
already is sufficient.
Or they may have internal platform-specific sub-classes which require special treatment
That is, a sealed class must declare which classes it permits to sub-class, and those
classes must be accessible at compile time. A platform-specific subclass will not
be present except on that platform so the code will fail to compile on other platforms.
Solutions would either be to move the platform class to shared code - not always
appropriate, or to introduce a shared subclass which is un-sealed but otherwise
unchanged and then have the platform classes extend that.

These are possible of course, but it maybe a question of whether it is worth it.

java.awt.MultipleGradientPaint has been identified as a candidate to be sealed
Comments
Changeset: 9f97f5de Author: Phil Race <prr@openjdk.org> Date: 2022-04-15 18:03:41 +0000 URL: https://git.openjdk.java.net/jdk/commit/9f97f5de684588be6caf0f0ababe5fe773b13d77
15-04-2022

A pull request was submitted for review. URL: https://git.openjdk.java.net/jdk/pull/8079 Date: 2022-04-01 19:18:39 +0000
01-04-2022