<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    Yes, now that JDK 17 is the minimum we can consider doing this. As
    you mentioned, it would provide earlier notification of the error:
    compile-time versus runtime.<br>
    <br>
    One thing to add is that in addition to sealing Node, we would leave
    at least Shape, Shape3D, Camera, and LightBase sealed, since they
    are also not extensible and throw a similar runtime exception.<br>
    <br>
    -- Kevin<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 2/1/2023 8:59 AM, Thiago Milczarek
      Sayão wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CAAP_wu=6iBo67J=YZApaW0atD0X4DZc3KmFJHcb7TFonT00eYA@mail.gmail.com">
      
      <div dir="ltr">
        <div>Yes, sorry, I made the email title in plural, but I meant
          what Michael said, Node would be sealed permitting only what
          is needed for JavaFx internally.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>-- Thiago<br>
        </div>
        <br>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">Em qua., 1 de fev. de 2023 às
          13:48, Michael Strauß <<a href="mailto:michaelstrau2@gmail.com" moz-do-not-send="true" class="moz-txt-link-freetext">michaelstrau2@gmail.com</a>>
          escreveu:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I
          don't think that's what Thiago is proposing. Only `Node` would
          be sealed.<br>
          The following subclasses would be non-sealed: Parent,
          SubScene,<br>
          Camera, LightBase, Shape, Shape3D, Canvas, ImageView.<br>
          And then there are additional subclasses, which don't fit into
          this<br>
          idea since they are in other modules: SwingNode (in
          javafx.swing),<br>
          MediaView (in javafx.media), Printable (in javafx.web).<br>
          <br>
          <br>
          <br>
          On Wed, Feb 1, 2023 at 5:39 PM John Hendrikx <<a href="mailto:john.hendrikx@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">john.hendrikx@gmail.com</a>>
          wrote:<br>
          ><br>
          > I think this may be a bit unclear from this post, but
          you're proposing I think to make `Node`, `Shape` and `Shape3D`
          sealed.  For those unaware, you're not allowed to extend these
          classes (despite being public).  For example Node says in its
          documentation:<br>
          ><br>
          >    * An application should not extend the Node class
          directly. Doing so may lead to<br>
          >    * an UnsupportedOperationException being thrown.<br>
          ><br>
          > Currently this is enforced at runtime in NodeHelper.<br>
          ><br>
          > --John<br>
          ><br>
          > On 01/02/2023 15:47, Thiago Milczarek Sayão wrote:<br>
          ><br>
          > Hi,<br>
          ><br>
          > NodeHelper.java has this:<br>
          ><br>
          > throw new UnsupportedOperationException(<br>
          >         "Applications should not extend the "<br>
          >         + nodeType + " class directly.");<br>
          ><br>
          ><br>
          > I think it's replaceable with selead classes. Am I right?<br>
          ><br>
          > The benefit will be compile time error instead of
          runtime.<br>
          ><br>
          ><br>
          > -- Thiago.<br>
          ><br>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>