第 6 章 Red Hat build of OpenJDK 21.0.1 程序错误修复更新

download PDF

红帽构建的 OpenJDK 21.0.1 包括以下程序错误修复。

修复了有效 .zip 文件中的 Invalid CEN 标头 错误

红帽构建的 OpenJDK 21.0.0 在 .zip 文件的 ZIP64 字段(JDK-8302483)中引入了额外的验证检查。但是,这些额外的检查会在一些有效的 .zip 文件中导致验证失败,并显示以下错误消息: Invalid CEN header (invalid zip64 extra data field size)

要解决这个问题,红帽构建的 OpenJDK 21.0.1 支持零长度标头和一些 ZIP64 创建工具生成的额外的 padding。

以下第三方工具也发布了补丁,以更好地遵循 .ZIP 文件格式规范:

  • Commons Compress release 1.11 中修复了 Empty CEN Zip64 Extra Headers 的 Apache Commons Compress fix for Empty CEN Zip64 Extra Headers
  • 在 Ant 1.10.14 中修复了 Empty CEN Zip64 Extra Headers 的 Apache Ant 修复
  • 在 BND 5.3 中修复编写无效 Extra Headers 的 BND 问题

    注意

    maven-bundle-plugin 5.1.5 包含 BND 5.3 补丁。

如果这些改进的验证检查导致部署的 ZIP 或 JAR 文件出现问题,请检查 文件的创建方式以及是否可从生成软件获取补丁来解决这个问题。在 Red Hat build of OpenJDK 21.0.0 之后,您可以通过将 jdk.util.zip.disableZip64ExtraFieldValidation 系统属性设置为 true 来禁用这些检查。

请参阅 JDK-8313765 (JDK Bug System)

修复了在内存上使用 Generational ZGC 时 JVM 可能会挂起的问题

在 Red Hat build of OpenJDK 21.0.0 中,当以下所有情况同时发生时,JVM 可能会挂起:

  • JVM 耗尽堆内存。
  • 垃圾收集器(GC)只启动重定位阶段来回收内存。
  • JVM 线程-本地握手请求重新定位对象。

Red Hat build of OpenJDK 21.0.0 引入了一个修复,以避免出现这个潜在死锁。

请参阅 JDK-8311981 (JDK Bug System)

修复了包含 lookaheads 和 lookbehinds 的 Regex 模式上的 java.util.regex.MatchResult 的潜在异常

在 OpenJDK 21.0.0 的红帽构建中,当使用 java.util.regex.Matcher.toMatchResult.toMatchResult ()返回的实例时,对 Matcher$ImmutableMatchResult () 的优化引入了一个意外的回归问题。https://bugs.openjdk.org/browse/JDK-8132995使用包含 lookahead 和 lookbehind assertions 的 java.util.regex.Pattern 类发生这个回归,其中包含组。如果这些组位于匹配项之外,则 java.util.regex.MatchResult threw a StringIndexOutOfBoundsException when access these groups。

红帽构建的 OpenJDK 21.0.1 通过计算一个最低起始位置来解决这个问题,并使用这个最低起始位置,而不是构建 String 对象时第一个匹配项的位置。

请参阅 JDK-8312976 (JDK Bug System)

Certigna root CA 证书

在 Red Hat build of OpenJDK 21.0.1 中,cacerts truststore 包括 Certigna root 证书:

  • 名称:Certigna (Dhimyotis)
  • 别名名称:certignarootca
  • 区分名称: CN=Certigna Root CA, OU=0002 48146308100036, O=Dhimyotis, C=FR

请参阅 JDK-8314960 (JDK Bug System)

增加 jdk.jar.maxSignatureFileSize 系统属性的默认值

红帽构建的 OpenJDK 21.0.0 引入了 jdk.jar.maxSignatureFileSize 系统属性,用于配置 Java 归档(JAR)文件(JDK-8300596)中允许签名相关文件的最大字节数。默认情况下,jdk.jar.maxSignatureFileSize 属性被设置为 8000000 字节(8 MB),对于某些 JAR 文件来说太小。

红帽构建的 OpenJDK 21.0.1 将 jdk.jar.maxSignatureFileSize 属性的默认值增加到 16000000 字节(16 MB)。

请参阅 JDK-8312489 (JDK Bug System)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.