Eclipse Temurin 8.0.352 发行注记
前言
Open Java Development Kit (OpenJDK)是 Java Platform, Standard Edition (Java SE)的一个免费的开源实现。Eclipse Temurin 在三个 LTS 版本中提供:OpenJDK 8u、OpenJDK 11u 和 OpenJDK 17u。
Eclipse Temurin 软件包可用于 Microsoft Windows 和多个 Linux x86 操作系统,包括 Red Hat Enterprise Linux 和 Ubuntu。
提供有关红帽构建的 OpenJDK 文档的反馈
要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 Eclipse Temurin 的支持策略
红帽在其产品中支持所选的 Eclipse Temurin 主版本。为实现一致性,这些版本与 Oracle JDK 的长期支持(LTS)指定的版本相同。
从该版本首次引入后,Eclip Temurin 的主版本将最少提供六年的支持。如需更多信息,请参阅 Eclipse Temurin 生命周期和支持政策。
RHEL 6 于 2020 年 11 月结束其生命周期。因此,Eclip Temurin 不支持 RHEL 6 作为支持的配置。
第 2 章 Eclipse Temurin 功能
Eclipse Temurin 不包含来自 OpenJDK 上游发行版的结构更改。
有关 Eclipse Temurin 的最新 OpenJDK 8 发行版本中包含的更改和安全修复的列表,请参阅 OpenJDK 8u352 Released。
新功能及功能增强
查看以下发行注记以了解 Eclipse Temurin 8.0.352 发行版本提供的新功能和功能增强:
引用对象更改和配置
从 OpenJDK 8.0.352 以后,您无法克隆 引用对象
。
如果您试图克隆引用对象,java.lang.ref.Reference::clone
方法会抛出 CloneNotSupportedException
信息。
如果要复制现有的 Reference
对象,则必须使用适当的 Reference
子类的构造器来创建 Reference
对象。这样可确保新的 Reference
对象包含与 target Reference
对象相同的引用和引用队列。
对于 OpenJDK 8.0.352 发行版本,java.lang.ref.Reference.enqueue
方法更改了行为。当应用程序代码调用 java.lang.ref.Reference.enqueue
方法时,此方法会在将对象添加到注册队列前清除引用。在
Reference
对象被排队后,需要 java.lang.ref.Reference.get ()
返回值的代码可能会抛出 NullPointerException
。
OpenJDK 8.0.352 发行版本更改了 PhantomReference
对象的行为,以便在任何关联的队列中排队前清除它们。这与 SoftReference
和 WeakReference
对象的现有行为相同。
links
- 请参阅 JDK-8201793 (JDK Bug System)。
- 请参阅 JDK-8175797 (JDK Bug System)。
- 请参阅 JDK-8071507 (JDK Bug System)。
-
有关这些引用对象配置的更多信息,请参阅 OpenJDK 8 维护版本 4 ( 红帽客户门户网站)
为客户端角色启用 TLSv1.3
OpenJDK 8.0.352 默认为客户端角色启用 TLSv1.3 协议支持。
在 OpenJDK 8.0.272 版本中,已经启用对服务器角色的 TLSv1.3 协议支持。
如果您在 OpenJDK 8.0.352 中创建 TLS 客户端角色,同时保留默认的协议设置,而 TLSv1.3 则用于与 TLS 服务器建立的连接中,兼容性问题可能会影响您的应用程序。以下列表详细介绍了常见兼容性问题:
-
TLSv1.3 使用半双工-close 策略,而 TLSv1.2 使用 full-duplex-close 策略。您可以使用
jdk.tls.acknowledgeCloseNotify
系统属性将 TLSv1.3 配置为使用全双工策略。有关此配置的更多信息,请参阅 JDK-8208526。 -
TLSv1.3 不支持
signature_algorithms_cert
扩展中的某些算法。例如,如果您只允许在配置中签名验证的数字签名算法(DSA),在使用 TLSv1.3 协议时您将遇到不兼容的问题。 - 使用 DSA 证书进行客户端身份验证的客户端会导致与 TLSv1.3 的兼容性问题。
- TLSv1.3 包含与早期 TLS 协议版本不同的密码套件。对于带有硬编码的、不支持的密码套件的应用程序,可能会出现兼容性问题。
- TLSV1.3 会话恢复和密钥更新行为与早期的 TLS 协议版本不同。依赖于这些协议的握手详情的应用程序可能会遇到兼容性问题。
如果您需要禁用对客户端角色的 TLSv1.3 协议支持,请完成以下操作之一:
-
获取带有
SSLContext.getInstance ("TLSv1.2")
的 TLSv1.2 上下文。 -
将
jdk.tls.client.protocols
系统属性设为 TLSv1.2。例如,-Djdk.tls.client.protocols="TLSv1.2"
。 -
为 OpenJDK
javax.net.ssl
API 设置早期 TLS 协议,如下例所示:
sslSocket.setEnabledProtocols(new String[] {"TLSv1.2"});
sslEngine.setEnabledProtocols(new String[] {"TLSv1.2"});
SSLParameters params = sslSocket.getSSLParameters(); params.setProtocols(new String[] {"TLSv1.2"}); slsSocket.setSSLParameters(params);
links
- 请参阅 JDK-8208526 (JDK Bug System)。
jdk.httpserver.maxConnections
system property
OpenJDK 8.0.352 添加了一个新的系统属性 jdk.httpserver.maxConnections
,它修复了一个安全问题,因为 HttpServer
服务没有指定连接限制,这可能会导致接受的连接和建立的连接无限期保持打开。
您可以使用 jdk.httpserver.maxConnections
系统属性以以下方式更改 HttpServer
服务的行为:
-
设置
0
或负值(如-1
)来为该服务指定连接限制。 -
设置一个正值,如
1
,使服务能够根据当前已建立的连接数检查任何接受的连接。如果达到该服务的最大已建立连接数,服务会立即关闭接受的连接。
支持 Microsoft Visual Studio 2017
从 OpenJDK 8.0.352 发行版本中,Windows JDK 和 JRE 1.8.0 版本使用 Visual Studio 2017 工具链编译,因为 Microsoft 目前支持此链。
红帽客户门户网站不再使用 Alternative toolchain 标签来标记使用 Visual Studio 2017 工具链编译的二进制文件。
对于依赖 Microsoft Visual Studio 2010 工具链进行编译二进制文件(红帽标签为 旧工具链 )的客户,红帽将继续支持这些二进制文件。在 Software Details 页面中,在红帽客户门户网站中,带有此工具链编译的文件在其文件名中包含 vs10
条目。例如,openjdk-1.8.0.345/java-1.8.0-openjdk-1.8.0.352-2.b08.redhat.windows.vs10.x86_64.zip
。
Microsoft 不再支持 Visual Studio 2010 工具链,因此红帽只能提供对与此链相关的任何产品的有限支持。
更新于 2024-05-11