java

JDK 8u181 发行说明

Java SE 8u181 捆绑补丁发行版 (BPR) — 错误修复和更新

本文汇总了所有 Java SE 8u181 BPR 的变更。下面将从最新 BPR 开始,按日期顺序介绍错误修复和所有其他变更。请注意,新版本 BPR 包含之前版本的错误修复。

您可以使用以下命令判断 JDK 软件版本:

java -version

Java SE 8u181 b37 变更

错误修复

错误 ID 组件 子组件 总结
8211107 core-libs javax.naming LDAPS 与 jdk 1.8.0_181 通信失败

Java SE 8u181 b36 的变更

错误修复

错误 ID 组件 子组件 总结
8204513
(机密)
部署 deployment_toolkit 在使用 Forms 的客户机小应用程序中调整浏览器窗口大小后,上下文丢失

Java SE 8u181 b35 的变更

错误修复

错误 ID 组件 子组件 总结
8201818 client-libs 2d [macosx] 通过 "java.awt.print.Book" 对象打印属性,突破页面大小设置

SE 8u181 b34 的变更

错误修复

错误 ID 组件 子组件 总结
8208583 security-libs javax.crypto 更好地管理内部 KeyStore 缓冲区
8209129 security-libs javax.crypto 进一步优化密码缓冲区管理
8207775 security-libs javax.crypto 更好地管理 CipherCore 缓冲区

SE 8u181 b33 的变更

错误修复

错误 ID 组件 子组件 总结
8202696 client-libs javax.swing 移除 Windows fontconfig.properties 中 Phonetic 字符的排除范围
8206242
(机密)
部署 webstart Java Web Start 在打开 http 连接时检查 "user.dir" 读取权限

Java SE 8u181 b32 的变更

请注意,此版本包含了上一 BPR (8u172 b37) 版本中的修复。

错误修复

错误 ID 组件 子组件 总结
8195095 client-libs javax.swing 图片无法在 JEditorPane 中正确缩放

Java™ SE Development Kit 8, Update 181 (JDK 8u181)·

2018 年 7 月 17 日

这一更新发行版的完整版本号为 1.8.0_181-b13(其中 "b" 表示 "build"),版本号为 8u181。

IANA Data 2018e

JDK 8u181 包含 IANA 时区数据版本 2018e。有关详细信息,请参阅 JRE 软件中的时区数据版本

安全基线

JDK 8u181 发行时指定的 Java 运行时环境 (JRE) 安全基线如下表所示:

JRE 系列版本 JRE 安全基线(完整版本号)
8 1.8.0_181-b13
7 1.7.0_191-b08
6 1.6.0_201-b07

JRE 到期日期

当任何一个修复了安全漏洞修复的新发行版可用时,JRE 就会到期。重要补丁更新、安全警报和公告页面会提前一年宣布包含安全漏洞修复的重要补丁更新。这一 JRE(版本 8u181)将于 2018 年 10 月 16 日下一个重要补丁更新发布后到期。

对于无法访问 Oracle 服务器的系统,Oracle 将通过辅助机制,使该 JRE(版本 8u181)于 2018 年 11 月 16 日到期。在满足两项条件(新发行版可用或到达到期日期)中的任何一项后,JRE 将向用户发送警告,提醒用户更新到新版本。有关详细信息,请参阅 JRE 到期日期

移除的功能和选项

other-libs/javadb

移除 Java DB

这一发行版移除了 Java DB(也被称为 "Apache Derby")。

我们建议您直接从 Apache 项目获取最新的 Apache Derby:

https://db.apache.org/derby

JDK-8197871(非公开)

变更

core-libs/javax.naming

优化 LDAP 支持

LDAPS 连接已启用端点识别。

为了提高 LDAPS(基于 TLS 的安全 LDAP)连接的稳定性,默认启用端点识别算法。

请注意,在某些情况下,某些之前成功连接 LDAPS 服务器的应用可能无法再次连接 LDAPS 服务器。当适用时,此类应用可使用新系统属性来禁用端点识别:com.sun.jndi.ldap.object.disableEndpointIdentification

只需定义该系统属性(或将其设置为 true)即可禁用端点识别算法。

JDK-8200666(非公开)

core-libs/java.io:serialization

更出色的堆栈遍历

在反序列化的对象创建阶段新增访问检查特性。一般情况下,这不会影响反序列化。但是,基于 JDK 内部 API 的反射框架可能会受到影响。如有必要,请将系统属性 jdk.disableSerialConstructorChecks 设置为 "true" 来禁用这一新增检查功能。该操作只能通过向 Java 命令行添加参数 -Djdk.disableSerialConstructorChecks=true 来执行。

JDK-8197925(非公开)

错误修复

以下是该发行版的一些值得关注的错误修复:

core-svc/debugger

无法使用 JDK 8 中的 JDWP API 对 JDK 9 及后续版本进行错误调试

现已修正 VirtualMachineImpl.canGetInstanceInfo() 实施,可在 JDK 9 及后续版本中查看 JDK JVM。

此次修正解决了某些调试代理无法正常运行的问题,无需用户(开发人员)执行任何操作。

请参阅 JDK-8197943

hotspot/gc

G1 GC 期间出现 JVM 崩溃

G1 并发标记不可访问的 klass 现可在 ClassLoaderData/SystemDictionary 中查找,而且其 _java_mirror 或 _class_loader 字段可存储在根中或任何可使其重新活动的其他可访问对象中。每当一个 klass 以这种方式复活时,请通知 G1 的 SATB 部分,否则并发标记备注阶段将错误地卸载该 klass。

发生这一特殊崩溃时,虽然 G1 正在执行并发标记并准备了不可访问类的列表,但 Java 线程上的 JVMTI 可以遍历 CLD 中的类,并为加载的类的 java_mirror 存储线程局部 JNIHandles。由于 G1 不了解这些线程局部 JNIHandles,在注释阶段,它会根据先前对无法访问的类的了解卸载这些类。稍后扫描这些 JNIHandles 时,就会发生崩溃。

JDK-8187577 修复程序将通知 G1 SATB klass 已重新复活,不应被卸载。

请参阅 JDK-8187577

hotspot/gc

提高较旧 NUMA 库 (-XX+UseNuma) 的稳定性

JDK 8 Update 152 中的一项修复引入了一项回归特性,当在 libnuma 版本低于 2.0.9 的 Linux 系统上使用 UseNUMA 标志时,它可能导致 HotSpot JVM 在启动期间崩溃。该问题已解决。

请参阅 JDK-8198794

 

错误修复列表

该发行版还包含 Oracle 重要补丁更新中所述的安全漏洞修复。

# 错误 ID 组件 子组件 总结
1 JDK-8201433 client-libs 2d 修复 BufImg_SetupICM 中的潜在崩溃
2 JDK-8198605 client-libs java.awt 对不可聚焦的文本组件显示触摸键盘
3 JDK-8198606 client-libs java.awt 当文本组件失去焦点时触摸键盘不隐藏
4 JDK-8199748 client-libs java.awt 当文本组件从其他文本组件获得焦点时不显示触摸键盘
5 JDK-8187635 client-libs java.awt 在 Windows 上,当窗口激活时 Swing 更改键盘布局
6 JDK-8203368 core-libs java.io:serialization ObjectInputStream filterCheck 方法抛出 NullPointerException
7 JDK-8202996 core-libs java.rmi 移除 RMI 修复中的调试打印语句
8 JDK-8197943 core-svc 调试器 无法使用 JDK 8 中的 JDWP API 来调试 JDK 9 VM
9 JDK-8194690 部署   App-V 程序包中捆绑的 JRE 将不启动 Java Web Start 应用
10 JDK-8190689 部署 插件 Java 错误地要求 "HttpOnly" cookie 属性区分大小写
11 个 JDK-8201133 部署 webstart 使用 jnlp.versionEnabled 和部署规则集功能对 main jar 下载进行安全检查失败
12 JDK-8189783 部署 webstart 从浏览器第二次调用时,具有文件扩展名关联的 Java Web Start 应用从高速缓存中移除
13 JDK-8187223 部署 webstart Long JNLP 文件未正确解析并以 javaws 路径结束
14 JDK-8199304 部署 webstart javaws.exe 无法启动 UTF-8 编码的 JNLP 文件
15 JDK-8038636 热点 编译器 预测陷阱在重新定义类时中断
16 JDK-8156137 热点 编译器 SIGSEGV in ReceiverTypeData::clean_weak_klass_links
17 JDK-8188223 热点 编译器 IfNode::range_check_trap_proj() 使用单个 if proj 处理失效子图
18 JDK-8169201 热点 编译器 Montgomery multiply intrinsic 使用正确名称
19 JDK-8187577 热点 gc GC 执行并发标记期间发生 JVM 崩溃
20 JDK-8199406 热点 gc 使用 Java JDK 1.8.0_162-b32 时性能下降
21 JDK-8055008 热点 jvmti 清除用于保存旧版本重定义类的代码
22 JDK-8057570 热点 jvmti RedefineClasses() tests fail assert(((Metadata*)obj)->is_valid()) failed: obj is valid
23 JDK-8198794 热点 运行时 使用 libnuma 2.0.3 向 Cassandra 3.11.1 启动时发生热点崩溃
24 JDK-8078628 热点 运行时 linux-zero 在缺失预编译头文件时不构建
25 JDK-8202065 安装 安装 从 8u171 开始,Windows 的 server-jre 中缺少 jre/bin/javaw.exe
26 JDK-8199650 安装 安装 JDK 安装卸载公共 JRE
27 JDK-8200418 javafx WEB webPage.executeCommand("removeFormat",null) 移除正文元素样式
28 JDK-8196011 javafx WEB 使用 JFXPanel 应用中的 WebView 时发生间歇性崩溃
29 JDK-8076117 security-libs java.security EndEntityChecker 不应在 PKIX 验证后处理自定义扩展包
30 JDK-8170035 security-libs javax.net.ssl 在确定密码套件列表时无禁用套件的调试输出。
31 JDK-8074373 工具 启动器 在类路径说明符后指定 NMT 选项后 NMT 未启用
32 JDK-8196491 xml jax-ws SOAP 请求的 JAXB 字符串值中的换行符转义为 " "

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。