<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Chen,</p>
    <p><br>
    </p>
    <p>thank you very much for your elaborate answer. Unfortunately it
      is not finally answering my actual question.</p>
    <p><br>
    </p>
    <p>First of all, unfortunately, the wording is ambiguous: You wrote
      "...and all implementations", but then go on with "(C) out" - but
      (C) was the SOLE case about ALL implementations, so this is yes
      and no in the same line.</p>
    <p><br>
    </p>
    <p>Second, you elaborate about @apiNote, @implSpec, and @implNote,
      but NEITHER of them is used in the mentioned JavaDocs location.
      Maybe you missed that my question is EXACTLY about that particular
      JavaDoc location BECAUSE those markers are missing?</p>
    <p><br>
    </p>
    <p>Third, I need an AUTHORITATIVE and UNAMBIGUOUS answer, and your
      wording sounds more like an opinion.</p>
    <p><br>
    </p>
    <p>Hence, kindly asking once more for a clear and authoritative
      answer: Is it (A), (B) or (C) for Writer::append(CharSequence)?</p>
    <p><br>
    </p>
    <p>Thanks!</p>
    <p>-Markus</p>
    <p><br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Am 09.02.2026 um 05:06 schrieb Chen
      Liang:<br>
    </div>
    <blockquote type="cite"
cite="mid:SJ2PR10MB7669E9DF443BCB24253E0574A265A@SJ2PR10MB7669.namprd10.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        Hi Markus,</div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        A piece of API specification in the Javadoc form applies to both
        callers and all implementations of a particular method. So here,
        (C) out of your options.</div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        There are @apiNote, @implSpec, and @implNote Javadoc block tags
        that indicates the scope of their text. For example, the
        implSpec tag applies to an immediate class/method, so were this
        documentation in an @implSpec tag, it would have been (A) out of
        the options.</div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        Meanwhile, the two note tags have the same scope (apiNote for
        all implementation, implNote for particular implementation) as
        the corresponding specs, but they are not binding and are just
        for informative purposes, and their updates do not require CSR
        reviews.</div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        The scope you described in (B) is a valid scope too; I did a
        regex search "reference\s+implementation", case-insensitive, and
        found that most of these descriptions are in @implNote tags.</div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        <br>
      </div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        Regards,</div>
      <div
style="font-family: "Calibri Light", "Helvetica Light", sans-serif; font-size: 12pt; color: rgb(0, 0, 0);"
        class="elementToProof">
        Chen Liang</div>
      <hr style="display:inline-block;width:98%" tabindex="-1">
      <div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif"
          style="font-size:11pt" color="#000000"><b>From:</b>
          core-libs-dev <a class="moz-txt-link-rfc2396E" href="mailto:core-libs-dev-retn@openjdk.org"><core-libs-dev-retn@openjdk.org></a> on behalf
          of Markus KARG <a class="moz-txt-link-rfc2396E" href="mailto:markus@headcrashing.eu"><markus@headcrashing.eu></a><br>
          <b>Sent:</b> Sunday, February 8, 2026 9:57 AM<br>
          <b>To:</b> 'core-libs-dev' <a class="moz-txt-link-rfc2396E" href="mailto:core-libs-dev@openjdk.org"><core-libs-dev@openjdk.org></a><br>
          <b>Subject:</b> Clarification on JavaDoc
          Writer::append(CharSequence)</font>
        <div> </div>
      </div>
      <div class="BodyFragment"><font size="2"><span
            style="font-size:11pt;">
            <div class="PlainText">Dear Core-Lib Devs,<br>
              <br>
              the JavaDocs of Writer::append(CharSequence) literally
              says:<br>
              <br>
                    * <p> An invocation of this method of the form
              {@code out.append(csq)}<br>
                    * when {@code csq} is not {@code null}, behaves in
              exactly the <br>
              same way<br>
                    * as the invocation<br>
                    *<br>
                    * {@snippet lang=java :<br>
                    *     out.write(csq.toString())<br>
                    * }<br>
                    * ...<br>
              <br>
              I am kindly asking for an authoritative clarification how
              this is to be <br>
              understood:<br>
              <br>
              * (A) ONLY the particular implementation found in
              Writer.java MUST <br>
              invoke "csq.toString"?<br>
              <br>
              * (B) OpenJDK's OWN subclasses of Writer MUST invoke
              "csq.toString"?<br>
              <br>
              * (C) ALL subclasses of Writer (even third-party code)
              MUST invoke <br>
              "csq.toString"?<br>
              <br>
              * (D) ...?...<br>
              <br>
              Regards<br>
              <br>
              -Markus Karg<br>
              <br>
            </div>
          </span></font></div>
    </blockquote>
  </body>
</html>