On Thu, 5 Sep 2024 12:01:23 GMT, Michael Strauß <mstra...@openjdk.org> wrote:
> None of these classes can be extended by user code, and any attempt to do so > will fail at runtime with an exception. For this reason, we can seal the > class hierarchy and remove the run-time checks to turn this into a > compile-time error instead. > > In some cases, `Node` and `Shape` are extended by JavaFX classes in other > modules, preventing those derived classes from being permitted subclasses. A > non-exported `AbstractNode` and `AbstractShape` class is provided just for > these scenarios. Note that introducing a new superclass is a source- and > binary-compatible change (see [JLS ch. > 13](https://docs.oracle.com/javase/specs/jls/se22/html/jls-13.html)). > > I'm not sure if this change requires a CSR, as it doesn't change the > specification in any meaningful way. There can be no valid JavaFX program > that is affected by this change. I forgot to mention `Camera` in my reply. Same as the 3D classes: the user can't do it if they try, so it will fail before compilation. I don't mind sealing it and will review changes for this as well. I also wonder if there are even other camera types in the literature and if the class can be built for subtyping at all. ------------- PR Comment: https://git.openjdk.org/jfx/pull/1556#issuecomment-2334382994