<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<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>
<div id="appendonsend"></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 <core-libs-dev-retn@openjdk.org> on behalf of Markus KARG <markus@headcrashing.eu><br>
<b>Sent:</b> Sunday, February 8, 2026 9:57 AM<br>
<b>To:</b> 'core-libs-dev' <core-libs-dev@openjdk.org><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>
</body>
</html>