diff --git a/src/java.base/share/classes/java/io/ObjectInputStream.java b/src/java.base/share/classes/java/io/ObjectInputStream.java index 316ba1d0343..2e0d6384f81 100644 --- a/src/java.base/share/classes/java/io/ObjectInputStream.java +++ b/src/java.base/share/classes/java/io/ObjectInputStream.java @@ -242,6 +242,7 @@ import sun.security.action.GetIntegerAction; * Java Object Serialization Specification, Section 1.13, * "Serialization of Records" for additional information. * + * @spec serialization/index.html Java Object Serialization Specification * @author Mike Warres * @author Roger Riggs * @see java.io.DataInput diff --git a/src/java.base/share/classes/java/io/ObjectOutputStream.java b/src/java.base/share/classes/java/io/ObjectOutputStream.java index 3e4e03d4240..9c823337714 100644 --- a/src/java.base/share/classes/java/io/ObjectOutputStream.java +++ b/src/java.base/share/classes/java/io/ObjectOutputStream.java @@ -155,6 +155,7 @@ import sun.reflect.misc.ReflectUtil; *
Records are serialized differently than ordinary serializable or externalizable * objects, see record serialization. * + * @spec serialization/index.html Java Object Serialization Specification * @author Mike Warres * @author Roger Riggs * @see java.io.DataOutput @@ -670,6 +671,7 @@ public class ObjectOutputStream * * @param desc class descriptor to write to the stream * @throws IOException If an I/O error has occurred. + * @spec serialization/index.html Java Object Serialization Specification * @see java.io.ObjectInputStream#readClassDescriptor() * @see #useProtocolVersion(int) * @see java.io.ObjectStreamConstants#PROTOCOL_VERSION_1 diff --git a/src/java.base/share/classes/java/io/ObjectStreamClass.java b/src/java.base/share/classes/java/io/ObjectStreamClass.java index 484e3b7b973..58841e55afb 100644 --- a/src/java.base/share/classes/java/io/ObjectStreamClass.java +++ b/src/java.base/share/classes/java/io/ObjectStreamClass.java @@ -73,6 +73,7 @@ import sun.reflect.misc.ReflectUtil; * * Java Object Serialization Specification, Section 4.6, "Stream Unique Identifiers". * + * @spec serialization/index.html Java Object Serialization Specification * @author Mike Warres * @author Roger Riggs * @see ObjectStreamField diff --git a/src/java.base/share/classes/java/io/Serial.java b/src/java.base/share/classes/java/io/Serial.java index d648f046159..c19aa65391a 100644 --- a/src/java.base/share/classes/java/io/Serial.java +++ b/src/java.base/share/classes/java/io/Serial.java @@ -94,6 +94,7 @@ import java.lang.annotation.*; * and methods reflectively and those fields and methods may appear * otherwise unused in a {@code Serializable} class. * + * @spec serialization/index.html Java Object Serialization Specification * @see Serializable * @see Externalizable * @since 14 diff --git a/src/java.base/share/classes/java/io/Serializable.java b/src/java.base/share/classes/java/io/Serializable.java index 680853abe28..9add677049c 100644 --- a/src/java.base/share/classes/java/io/Serializable.java +++ b/src/java.base/share/classes/java/io/Serializable.java @@ -181,13 +181,12 @@ package java.io; * the default computed value, but the requirement for matching * serialVersionUID values is waived for array classes. * + * @spec serialization/index.html Java Object Serialization Specification * @see java.io.ObjectOutputStream * @see java.io.ObjectInputStream * @see java.io.ObjectOutput * @see java.io.ObjectInput * @see java.io.Externalizable - * @see - * Java Object Serialization Specification * @since 1.1 */ public interface Serializable { diff --git a/src/java.base/share/classes/java/io/package-info.java b/src/java.base/share/classes/java/io/package-info.java index 81f61412eed..7030d1f0f77 100644 --- a/src/java.base/share/classes/java/io/package-info.java +++ b/src/java.base/share/classes/java/io/package-info.java @@ -48,6 +48,7 @@ *
The implementation conforms to RFC 2965, section 3.3. * + * @spec https://www.rfc-editor.org/info/rfc2965 RFC 2965: HTTP State Management Mechanism * @see CookiePolicy * @author Edward Wang * @since 1.6 diff --git a/src/java.base/share/classes/java/net/HttpCookie.java b/src/java.base/share/classes/java/net/HttpCookie.java index 0214359ccde..bc6c00bd13b 100644 --- a/src/java.base/share/classes/java/net/HttpCookie.java +++ b/src/java.base/share/classes/java/net/HttpCookie.java @@ -53,6 +53,8 @@ import jdk.internal.access.SharedSecrets; * *
HttpCookie class can accept all these 3 forms of syntax. * + * @spec https://www.rfc-editor.org/info/rfc2109 RFC 2109: HTTP State Management Mechanism + * @spec https://www.rfc-editor.org/info/rfc2965 RFC 2965: HTTP State Management Mechanism * @author Edward Wang * @since 1.6 */ diff --git a/src/java.base/share/classes/java/net/IDN.java b/src/java.base/share/classes/java/net/IDN.java index f88d0b174de..14fc3a28396 100644 --- a/src/java.base/share/classes/java/net/IDN.java +++ b/src/java.base/share/classes/java/net/IDN.java @@ -68,6 +68,20 @@ import jdk.internal.icu.text.UCharacterIterator; * Applications are responsible for taking adequate security measures when using * international domain names. * + * @spec https://www.rfc-editor.org/info/rfc1122 + * RFC 1122: Requirements for Internet Hosts - Communication Layers + * @spec https://www.rfc-editor.org/info/rfc1123 + * RFC 1123: Requirements for Internet Hosts - Application and Support + * @spec https://www.rfc-editor.org/info/rfc3454 + * RFC 3454: Preparation of Internationalized Strings ("stringprep") + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) + * @spec https://www.rfc-editor.org/info/rfc3491 + * RFC 3491: Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN) + * @spec https://www.rfc-editor.org/info/rfc3492 + * RFC 3492: Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) + * @spec https://www.unicode.org/reports/tr36 + * Unicode Security Considerations * @author Edward Wang * @since 1.6 * @@ -107,6 +121,8 @@ public final class IDN { * @return the translated {@code String} * * @throws IllegalArgumentException if the input string doesn't conform to RFC 3490 specification + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) */ public static String toASCII(String input, int flag) { @@ -146,6 +162,8 @@ public final class IDN { * @return the translated {@code String} * * @throws IllegalArgumentException if the input string doesn't conform to RFC 3490 specification + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) */ public static String toASCII(String input) { return toASCII(input, 0); @@ -169,6 +187,8 @@ public final class IDN { * @param flag process flag; can be 0 or any logical OR of possible flags * * @return the translated {@code String} + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) */ public static String toUnicode(String input, int flag) { int p = 0, q = 0; @@ -205,6 +225,8 @@ public final class IDN { * @param input the string to be processed * * @return the translated {@code String} + * @spec https://www.rfc-editor.org/info/rfc3490 + * RFC 3490: Internationalizing Domain Names in Applications (IDNA) */ public static String toUnicode(String input) { return toUnicode(input, 0); diff --git a/src/java.base/share/classes/java/net/Inet4Address.java b/src/java.base/share/classes/java/net/Inet4Address.java index 921818c4525..9f0c783b827 100644 --- a/src/java.base/share/classes/java/net/Inet4Address.java +++ b/src/java.base/share/classes/java/net/Inet4Address.java @@ -79,6 +79,13 @@ import java.io.ObjectStreamException; * 255 are global. However, the administrative scoping is preferred. * Please refer to * RFC 2365: Administratively Scoped IP Multicast + * + * @spec https://www.rfc-editor.org/info/rfc1918 + * RFC 1918: Address Allocation for Private Internets + * @spec https://www.rfc-editor.org/info/rfc2365 + * RFC 2365: Administratively Scoped IP Multicast + * @spec https://www.rfc-editor.org/info/rfc790 + * RFC 790: Assigned numbers * @since 1.4 */ diff --git a/src/java.base/share/classes/java/net/Inet6Address.java b/src/java.base/share/classes/java/net/Inet6Address.java index bef9adab73a..45d44e3fcbe 100644 --- a/src/java.base/share/classes/java/net/Inet6Address.java +++ b/src/java.base/share/classes/java/net/Inet6Address.java @@ -169,6 +169,9 @@ import java.util.Arrays; *
Note also, that the numeric scope_id can be retrieved from * Inet6Address instances returned from the NetworkInterface class. This can be * used to find out the current scope ids configured on the system. + * + * @spec https://www.rfc-editor.org/info/rfc2373 + * RFC 2373: IP Version 6 Addressing Architecture * @since 1.4 */ diff --git a/src/java.base/share/classes/java/net/InetAddress.java b/src/java.base/share/classes/java/net/InetAddress.java index e57e2741244..0b05960647a 100644 --- a/src/java.base/share/classes/java/net/InetAddress.java +++ b/src/java.base/share/classes/java/net/InetAddress.java @@ -216,6 +216,14 @@ import static java.net.spi.InetAddressResolver.LookupPolicy.IPV6_FIRST; * * * + * @spec https://www.rfc-editor.org/info/rfc1918 + * RFC 1918: Address Allocation for Private Internets + * @spec https://www.rfc-editor.org/info/rfc2365 + * RFC 2365: Administratively Scoped IP Multicast + * @spec https://www.rfc-editor.org/info/rfc2373 + * RFC 2373: IP Version 6 Addressing Architecture + * @spec https://www.rfc-editor.org/info/rfc790 + * RFC 790: Assigned numbers * @author Chris Warth * @see java.net.InetAddress#getByAddress(byte[]) * @see java.net.InetAddress#getByAddress(java.lang.String, byte[]) @@ -1408,6 +1416,9 @@ public sealed class InetAddress implements Serializable permits Inet4Address, In * for a global IPv6 address. * @throws SecurityException if a security manager exists * and its checkConnect method doesn't allow the operation + * + * @spec https://www.rfc-editor.org/info/rfc2373 RFC 2373: IP Version 6 Addressing Architecture + * @spec https://www.rfc-editor.org/info/rfc3330 RFC 3330: Special-Use IPv4 Addresses */ public static InetAddress getByName(String host) throws UnknownHostException { @@ -1451,6 +1462,8 @@ public sealed class InetAddress implements Serializable permits Inet4Address, In * @throws SecurityException if a security manager exists and its * {@code checkConnect} method doesn't allow the operation. * + * @spec https://www.rfc-editor.org/info/rfc2373 RFC 2373: IP Version 6 Addressing Architecture + * @spec https://www.rfc-editor.org/info/rfc3330 RFC 3330: Special-Use IPv4 Addresses * @see SecurityManager#checkConnect */ public static InetAddress[] getAllByName(String host) diff --git a/src/java.base/share/classes/java/net/ResponseCache.java b/src/java.base/share/classes/java/net/ResponseCache.java index a4d7823a0cc..ef00dca80f8 100644 --- a/src/java.base/share/classes/java/net/ResponseCache.java +++ b/src/java.base/share/classes/java/net/ResponseCache.java @@ -55,6 +55,8 @@ import sun.security.util.SecurityConstants; * href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616: Hypertext * Transfer Protocol -- HTTP/1.1 * + * @spec https://www.rfc-editor.org/info/rfc2616 + * RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1 * @author Yingxian Wang * @since 1.5 */ diff --git a/src/java.base/share/classes/java/net/SocketPermission.java b/src/java.base/share/classes/java/net/SocketPermission.java index 9f45324201b..54214b7af03 100644 --- a/src/java.base/share/classes/java/net/SocketPermission.java +++ b/src/java.base/share/classes/java/net/SocketPermission.java @@ -134,6 +134,8 @@ import sun.security.util.Debug; * transfer and share confidential data among parties who may not * otherwise have access to the data. * + * @spec https://www.rfc-editor.org/info/rfc2732 + * RFC 2732: Format for Literal IPv6 Addresses in URL's * @see java.security.Permissions * @see SocketPermission * diff --git a/src/java.base/share/classes/java/net/StandardSocketOptions.java b/src/java.base/share/classes/java/net/StandardSocketOptions.java index bf5a9df5797..08be52c05d5 100644 --- a/src/java.base/share/classes/java/net/StandardSocketOptions.java +++ b/src/java.base/share/classes/java/net/StandardSocketOptions.java @@ -57,6 +57,8 @@ public final class StandardSocketOptions { * require that the Java virtual machine be started with implementation * specific privileges to enable this option or send broadcast datagrams. * + * @spec https://www.rfc-editor.org/info/rfc919 + * RFC 919: Broadcasting Internet Datagrams * @see RFC 929: * Broadcasting Internet Datagrams * @see DatagramSocket#setBroadcast @@ -77,6 +79,8 @@ public final class StandardSocketOptions { *
The initial value of this socket option is {@code FALSE}. The socket
* option may be enabled or disabled at any time.
*
+ * @spec https://www.rfc-editor.org/info/rfc1122
+ * RFC 1122: Requirements for Internet Hosts - Communication Layers
* @see RFC 1122
* Requirements for Internet Hosts -- Communication Layers
* @see Socket#setKeepAlive
@@ -147,6 +151,8 @@ public final class StandardSocketOptions {
* socket receive buffer to be changed after the socket is bound is system
* dependent.
*
+ * @spec https://www.rfc-editor.org/info/rfc1323
+ * RFC 1323: TCP Extensions for High Performance
* @see RFC 1323: TCP
* Extensions for High Performance
* @see Socket#setReceiveBufferSize
@@ -179,6 +185,8 @@ public final class StandardSocketOptions {
* after the socket is bound has no effect. The default value of this
* socket option is system dependent.
*
+ * @spec https://www.rfc-editor.org/info/rfc793
+ * RFC 793: Transmission Control Protocol
* @see RFC 793: Transmission
* Control Protocol
* @see ServerSocket#setReuseAddress
@@ -268,6 +276,10 @@ public final class StandardSocketOptions {
* {@link StandardProtocolFamily#INET6 IPv6} socket, is not defined in this
* release.
*
+ * @spec https://www.rfc-editor.org/info/rfc1349
+ * RFC 1349: Type of Service in the Internet Protocol Suite
+ * @spec https://www.rfc-editor.org/info/rfc2474
+ * RFC 2474: Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers
* @see DatagramSocket#setTrafficClass
*/
public static final SocketOption
ACL entries are immutable and are safe for use by multiple concurrent * threads. * + * @spec https://www.rfc-editor.org/info/rfc3530 + * RFC 3530: Network File System (NFS) version 4 Protocol * @since 1.7 */ diff --git a/src/java.base/share/classes/java/nio/file/attribute/AclEntryPermission.java b/src/java.base/share/classes/java/nio/file/attribute/AclEntryPermission.java index 492ab770d33..db3aa09cf09 100644 --- a/src/java.base/share/classes/java/nio/file/attribute/AclEntryPermission.java +++ b/src/java.base/share/classes/java/nio/file/attribute/AclEntryPermission.java @@ -55,6 +55,9 @@ public enum AclEntryPermission { *
RFC 3530: Network * File System (NFS) version 4 Protocol defines named attributes * as opaque files associated with a file in the file system. + * + * @spec https://www.rfc-editor.org/info/rfc3530 + * RFC 3530: Network File System (NFS) version 4 Protocol */ READ_NAMED_ATTRS, @@ -64,6 +67,9 @@ public enum AclEntryPermission { *
RFC 3530: Network
* File System (NFS) version 4 Protocol defines named attributes
* as opaque files associated with a file in the file system.
+ *
+ * @spec https://www.rfc-editor.org/info/rfc3530
+ * RFC 3530: Network File System (NFS) version 4 Protocol
*/
WRITE_NAMED_ATTRS,
diff --git a/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java b/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java
index 6db57e2fa50..aff3b2c6b27 100644
--- a/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java
+++ b/src/java.base/share/classes/java/nio/file/attribute/AclFileAttributeView.java
@@ -139,6 +139,8 @@ import java.io.IOException;
* any attempt to create a file that would be less secure as a result of the
* translation.
*
+ * @spec https://www.rfc-editor.org/info/rfc3530
+ * RFC 3530: Network File System (NFS) version 4 Protocol
* @since 1.7
*/
diff --git a/src/java.base/share/classes/java/nio/file/attribute/FileTime.java b/src/java.base/share/classes/java/nio/file/attribute/FileTime.java
index 0ceb0fac0bb..7cb3a3ea803 100644
--- a/src/java.base/share/classes/java/nio/file/attribute/FileTime.java
+++ b/src/java.base/share/classes/java/nio/file/attribute/FileTime.java
@@ -409,6 +409,9 @@ public final class FileTime
* are not present. The year before "{@code 0001}" is "{@code -0001}".
*
* @return the string representation of this file time
+ *
+ * @spec https://www.w3.org/TR/NOTE-datetime Date and Time Formats
+ * @spec https://www.w3.org/TR/xmlschema-2 XML Schema Part 2: Datatypes Second Edition
*/
@Override
public String toString() {
diff --git a/src/java.base/share/classes/java/nio/file/attribute/package-info.java b/src/java.base/share/classes/java/nio/file/attribute/package-info.java
index 26c4c853d13..7778c540fdd 100644
--- a/src/java.base/share/classes/java/nio/file/attribute/package-info.java
+++ b/src/java.base/share/classes/java/nio/file/attribute/package-info.java
@@ -124,6 +124,8 @@
* or method in any class or interface in this package will cause a {@link
* java.lang.NullPointerException NullPointerException} to be thrown.
*
+ * @spec https://www.rfc-editor.org/info/rfc3530
+ * RFC 3530: Network File System (NFS) version 4 Protocol
* @since 1.7
*/
diff --git a/src/java.base/share/classes/java/nio/file/spi/FileTypeDetector.java b/src/java.base/share/classes/java/nio/file/spi/FileTypeDetector.java
index 16da5e4ce63..7b235654979 100644
--- a/src/java.base/share/classes/java/nio/file/spi/FileTypeDetector.java
+++ b/src/java.base/share/classes/java/nio/file/spi/FileTypeDetector.java
@@ -100,6 +100,8 @@ public abstract class FileTypeDetector {
* provider then the {@link SecurityManager#checkRead(String)} method
* is invoked to check read access to the file.
*
+ * @spec https://www.rfc-editor.org/info/rfc2045
+ * RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
* @see java.nio.file.Files#probeContentType
*/
public abstract String probeContentType(Path path)
diff --git a/src/java.base/share/classes/java/text/Collator.java b/src/java.base/share/classes/java/text/Collator.java
index f53fa14875d..9e9a1deb785 100644
--- a/src/java.base/share/classes/java/text/Collator.java
+++ b/src/java.base/share/classes/java/text/Collator.java
@@ -192,6 +192,8 @@ public abstract class Collator
* described in
* Unicode
* Standard Annex #15: Unicode Normalization Forms.
+ *
+ * @spec https://www.unicode.org/reports/tr15 Unicode Normalization Forms
* @see java.text.Collator#getDecomposition
* @see java.text.Collator#setDecomposition
*/
@@ -211,6 +213,8 @@ public abstract class Collator
* described in
* Unicode
* Standard Annex #15: Unicode Normalization Forms.
+ *
+ * @spec https://www.unicode.org/reports/tr15 Unicode Normalization Forms
* @see java.text.Collator#getDecomposition
* @see java.text.Collator#setDecomposition
*/
diff --git a/src/java.base/share/classes/java/text/CompactNumberFormat.java b/src/java.base/share/classes/java/text/CompactNumberFormat.java
index 5fa477c47f2..5b95b945799 100644
--- a/src/java.base/share/classes/java/text/CompactNumberFormat.java
+++ b/src/java.base/share/classes/java/text/CompactNumberFormat.java
@@ -205,6 +205,8 @@ import java.util.stream.Collectors;
* {@link java.math.RoundingMode} for formatting. By default, it uses
* {@link java.math.RoundingMode#HALF_EVEN RoundingMode.HALF_EVEN}.
*
+ * @spec https://www.unicode.org/reports/tr35
+ * Unicode Locale Data Markup Language (LDML)
* @see NumberFormat.Style
* @see NumberFormat
* @see DecimalFormat
@@ -423,6 +425,9 @@ public final class CompactNumberFormat extends NumberFormat {
* the {@code compactPatterns} array contains an invalid pattern,
* a {@code null} appears in the array of compact patterns,
* or if the given {@code pluralRules} contains an invalid syntax
+ *
+ * @spec https://www.unicode.org/reports/tr35
+ * Unicode Locale Data Markup Language (LDML)
* @see DecimalFormat#DecimalFormat(java.lang.String, DecimalFormatSymbols)
* @see DecimalFormatSymbols
* @since 14
diff --git a/src/java.base/share/classes/java/text/DateFormatSymbols.java b/src/java.base/share/classes/java/text/DateFormatSymbols.java
index 76708d6bf78..e09d8088640 100644
--- a/src/java.base/share/classes/java/text/DateFormatSymbols.java
+++ b/src/java.base/share/classes/java/text/DateFormatSymbols.java
@@ -415,6 +415,9 @@ public class DateFormatSymbols implements Serializable, Cloneable {
* @implSpec This method returns 13 elements since
* {@link java.util.Calendar#UNDECIMBER Calendar.UNDECIMBER} is supported.
* @return the month strings.
+ *
+ * @spec https://www.unicode.org/reports/tr35
+ * Unicode Locale Data Markup Language (LDML)
*/
public String[] getMonths() {
return Arrays.copyOf(months, months.length);
@@ -453,6 +456,9 @@ public class DateFormatSymbols implements Serializable, Cloneable {
* @implSpec This method returns 13 elements since
* {@link java.util.Calendar#UNDECIMBER Calendar.UNDECIMBER} is supported.
* @return the short month strings.
+ *
+ * @spec https://www.unicode.org/reports/tr35
+ * Unicode Locale Data Markup Language (LDML)
*/
public String[] getShortMonths() {
return Arrays.copyOf(shortMonths, shortMonths.length);
diff --git a/src/java.base/share/classes/java/text/Normalizer.java b/src/java.base/share/classes/java/text/Normalizer.java
index 00317e768fd..5265fefc671 100644
--- a/src/java.base/share/classes/java/text/Normalizer.java
+++ b/src/java.base/share/classes/java/text/Normalizer.java
@@ -103,6 +103,7 @@ import jdk.internal.icu.text.NormalizerBase;
* character encodings the Unicode text needs to be normalized to NFC.
* For more usage examples, see the Unicode Standard Annex.
*
+ * @spec https://www.unicode.org/reports/tr15 Unicode Normalization Forms
* @since 1.6
*/
public final class Normalizer {
@@ -116,6 +117,7 @@ public final class Normalizer {
* Unicode Standard Annex #15 — Unicode Normalization Forms
* and two methods to access them.
*
+ * @spec https://www.unicode.org/reports/tr15 Unicode Normalization Forms
* @since 1.6
*/
public static enum Form {
diff --git a/src/java.base/share/classes/java/text/NumberFormat.java b/src/java.base/share/classes/java/text/NumberFormat.java
index 07c1c18a94e..6d893bc4ec7 100644
--- a/src/java.base/share/classes/java/text/NumberFormat.java
+++ b/src/java.base/share/classes/java/text/NumberFormat.java
@@ -586,6 +586,8 @@ public abstract class NumberFormat extends Format {
*
* @param inLocale the desired locale
* @return the {@code NumberFormat} instance for currency formatting
+ *
+ * @spec https://www.unicode.org/reports/tr35 Unicode Locale Data Markup Language (LDML)
*/
public static NumberFormat getCurrencyInstance(Locale inLocale) {
return getInstance(inLocale, null, CURRENCYSTYLE);
diff --git a/src/java.base/share/classes/java/time/format/DateTimeFormatter.java b/src/java.base/share/classes/java/time/format/DateTimeFormatter.java
index d5a5c162fd2..3f681d4771f 100644
--- a/src/java.base/share/classes/java/time/format/DateTimeFormatter.java
+++ b/src/java.base/share/classes/java/time/format/DateTimeFormatter.java
@@ -760,6 +760,8 @@ public final class DateTimeFormatter {
* @param requestedTemplate the requested template, not null
* @return the formatter based on the {@code requestedTemplate} pattern, not null
* @throws IllegalArgumentException if {@code requestedTemplate} is invalid
+ *
+ * @spec https://www.unicode.org/reports/tr35 Unicode Locale Data Markup Language (LDML)
* @see #ofPattern(String)
* @since 19
*/
diff --git a/src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java b/src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java
index c69b08e4a5f..8e68696d4cc 100644
--- a/src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java
+++ b/src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java
@@ -1525,6 +1525,8 @@ public final class DateTimeFormatterBuilder {
* @param requestedTemplate the requested template to use, not null
* @return this, for chaining, not null
* @throws IllegalArgumentException if {@code requestedTemplate} is invalid
+ *
+ * @spec https://www.unicode.org/reports/tr35 Unicode Locale Data Markup Language (LDML)
* @see #appendPattern(String)
* @since 19
*/
@@ -1608,6 +1610,8 @@ public final class DateTimeFormatterBuilder {
*
* @param style the text style to use, not null
* @return this, for chaining, not null
+ *
+ * @spec https://www.unicode.org/reports/tr35 Unicode Locale Data Markup Language (LDML)
* @since 16
*/
public DateTimeFormatterBuilder appendDayPeriodText(TextStyle style) {
diff --git a/src/java.base/share/classes/java/util/Base64.java b/src/java.base/share/classes/java/util/Base64.java
index fb762aa33e5..60b6c18c078 100644
--- a/src/java.base/share/classes/java/util/Base64.java
+++ b/src/java.base/share/classes/java/util/Base64.java
@@ -73,6 +73,10 @@ import jdk.internal.vm.annotation.IntrinsicCandidate;
* method of this class will cause a {@link java.lang.NullPointerException
* NullPointerException} to be thrown.
*
+ * @spec https://www.rfc-editor.org/info/rfc2045
+ * RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
+ * @spec https://www.rfc-editor.org/info/rfc4648
+ * RFC 4648: The Base16, Base32, and Base64 Data Encodings
* @author Xueming Shen
* @since 1.8
*/
diff --git a/src/java.base/share/classes/java/util/Currency.java b/src/java.base/share/classes/java/util/Currency.java
index 59b44afed06..77d74e2e4f9 100644
--- a/src/java.base/share/classes/java/util/Currency.java
+++ b/src/java.base/share/classes/java/util/Currency.java
@@ -108,6 +108,7 @@ import sun.util.logging.PlatformLogger;
* with {@code Currency} or monetary values as it provides better handling of floating
* point numbers and their operations.
*
+ * @spec http://www.iso.org/iso/home/standards/currency_codes.htm ISO - ISO 4217 - Currency codes
* @see java.math.BigDecimal
* @since 1.4
*/
diff --git a/src/java.base/share/classes/java/util/Formatter.java b/src/java.base/share/classes/java/util/Formatter.java
index 6bd93315e32..ca9b9deb92e 100644
--- a/src/java.base/share/classes/java/util/Formatter.java
+++ b/src/java.base/share/classes/java/util/Formatter.java
@@ -2010,6 +2010,9 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
* method or constructor in this class will cause a {@link
* NullPointerException} to be thrown.
*
+ * @spec https://www.w3.org/TR/NOTE-datetime Date and Time Formats
+ * @spec https://www.rfc-editor.org/info/rfc822
+ * RFC 822: STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES
* @author Iris Clark
* @since 1.5
*/
diff --git a/src/java.base/share/classes/java/util/Locale.java b/src/java.base/share/classes/java/util/Locale.java
index 62efe7897c1..1215f966531 100644
--- a/src/java.base/share/classes/java/util/Locale.java
+++ b/src/java.base/share/classes/java/util/Locale.java
@@ -470,6 +470,10 @@ import sun.util.locale.provider.TimeZoneNameUtility;
* compatibility, the implementation still does not impose a length
* constraint.
*
+ * @spec https://www.rfc-editor.org/info/rfc4647
+ * RFC 4647: Matching of Language Tags
+ * @spec https://www.rfc-editor.org/info/rfc5646
+ * RFC 5646: Tags for Identifying Languages
* @see Builder
* @see ResourceBundle
* @see java.text.Format
@@ -3036,6 +3040,7 @@ public final class Locale implements Cloneable, Serializable {
*
*
*
+ * @spec https://www.rfc-editor.org/info/rfc4647 RFC 4647: Matching of Language Tags
* @see #filter(List, Collection, FilteringMode)
* @see #filterTags(List, Collection, FilteringMode)
*
@@ -3107,6 +3112,8 @@ public final class Locale implements Cloneable, Serializable {
* {@code "zh-Hant-*"} (Traditional Chinese, any regions) are extended
* language ranges.
*
+ * @spec https://www.rfc-editor.org/info/rfc4234 RFC 4234: Augmented BNF for Syntax Specifications: ABNF
+ * @spec https://www.rfc-editor.org/info/rfc4647 RFC 4647: Matching of Language Tags
* @see #filter
* @see #filterTags
* @see #lookup
@@ -3303,6 +3310,7 @@ public final class Locale implements Cloneable, Serializable {
* @throws NullPointerException if {@code ranges} is null
* @throws IllegalArgumentException if a language range or a weight
* found in the given {@code ranges} is ill-formed
+ * @spec https://www.rfc-editor.org/info/rfc2616 RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
*/
public static List