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

Justin Lu jlu at openjdk.org
Tue Sep 19 21:14:04 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 with a new target base due to a merge or a rebase. The pull request now contains 15 commits:

 - Re-import Locale after merge for Formatter
 - Merge master
 - 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
 - private constructor in CalendarUtils
 - Make utility class 'CalendarUtils' final
 - ... and 5 more: https://git.openjdk.org/jdk/compare/373e37bf...f8698724

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

Changes: https://git.openjdk.org/jdk/pull/15803/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=15803&range=02
  Stats: 222 lines in 12 files changed: 101 ins; 48 del; 73 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