<i18n dev> RFR: JDK-8316435: sun.util.calendar.CalendarSystem subclassing should be restricted [v2]

Justin Lu jlu at openjdk.org
Tue Sep 19 20:53:38 UTC 2023


> Please review this PR which restricts sub-classing of the internal calendar system in sun.util.calendar to only the existing implementations. Drive by cleanup included.
> 
> As the implementation is long-standing and complete with no intent for future sub-classing, the CalendarSystem should be made sealed. Modifiers adjusted accordingly (`JulianCalendar.Date` must now have package visibility).
> 
> 
> This system has the following structure,
> 
> `CalendarSystem` extended by `AbstractCalendar` extended by `BaseCalendar` extended by 
> (`Gregorian, JulianCalendar, LocalGregorianCalendar`)
> 
> `CalendarDate` extended by `BaseCalendar.Date` extended by 
> (`Gregorian.Date, ImmutableGregorianDate, JulianCalendar.Date, LocalGregorianCalendar.Date`)
> 
> Additionally, CalendarUtils was made `final`, as it is a utility class composed of static util methods.

Justin Lu has updated the pull request incrementally with six additional commits since the last revision:

 - Replace sprintf0d with Formatter
 - setCache should not be overridden to be unsupported in IGD
 - Cleanup immutableGreg
 - Clarify the class with comments, also overide setCache to throw an exception
 - Use Override annotation within calendar system
 - Clarify private constructor with comment

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/15803/files
  - new: https://git.openjdk.org/jdk/pull/15803/files/b6915efe..84a346ae

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=15803&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=15803&range=00-01

  Stats: 185 lines in 11 files changed: 95 ins; 48 del; 42 mod
  Patch: https://git.openjdk.org/jdk/pull/15803.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/15803/head:pull/15803

PR: https://git.openjdk.org/jdk/pull/15803


More information about the i18n-dev mailing list