Release notes for Eclipse Temurin 17.0.14
Abstract
Preface
Open Java Development Kit (OpenJDK) is a free and open source implementation of the Java Platform, Standard Edition (Java SE). Eclipse Temurin is available in four LTS versions: OpenJDK 8u, OpenJDK 11u, OpenJDK 17u, and OpenJDK 21u.
Binary files for Eclipse Temurin are available for macOS, Microsoft Windows, and multiple Linux x86 Operating Systems including Red Hat Enterprise Linux and Ubuntu.
Providing feedback on Red Hat build of OpenJDK documentation
To report an error or to improve our documentation, log in to your Red Hat Jira account and submit an issue. If you do not have a Red Hat Jira account, then you will be prompted to create an account.
Procedure
- Click the following link to create a ticket.
- Enter a brief description of the issue in the Summary.
- Provide a detailed description of the issue or enhancement in the Description. Include a URL to where the issue occurs in the documentation.
- Clicking Create creates and routes the issue to the appropriate documentation team.
Making open source more inclusive
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity of this endeavor, these changes will be implemented gradually over several upcoming releases. For more details, see our CTO Chris Wright’s message.
Chapter 1. Support policy for Eclipse Temurin
Red Hat will support select major versions of Eclipse Temurin in its products. For consistency, these versions remain similar to Oracle JDK versions that Oracle designates as long-term support (LTS).
A major version of Eclipse Temurin will be supported for a minimum of six years from the time that version is first introduced. For more information, see the Eclipse Temurin Life Cycle and Support Policy.
RHEL 6 reached the end of life in November 2020. Because of this, Eclipse Temurin does not support RHEL 6 as a supported configuration.
Chapter 2. Eclipse Temurin features
Eclipse Temurin does not contain structural changes from the upstream distribution of OpenJDK.
For the list of changes and security fixes that the latest OpenJDK 17 release of Eclipse Temurin includes, see OpenJDK 17.0.14 Released.
New features and enhancements
Eclipse Temurin 17.0.14 includes the following new features and enhancements.
Fix for invokedynamic
string concatenation changing order of operations
The Indify String Concatenation feature that was added in OpenJDK 9 through JEP-280 introduced a regression in the order in which string concatenation expressions are evaluated. The Java Language Specification requires that operands are fully evaluated in left-to-right order. However, with the introduction of invokedynamic
(indy) call generation by the javac
compiler for evaluating string concatenation expressions, all operands were evaluated in order but not converted to strings. In this situation, each operand was converted to a string only later.
For example, consider the following code, where the third argument of the concatenation has the side effect of altering the value of builder
to "goodbye"
:
StringBuilder builder = new StringBuilder("good"); return "" + builder + builder.append("bye");
Based on the preceding example, in earlier releases, the Indify String Contenation feature did not convert the second argument to a string until after the builder.append
method altered the StringBuilder
object. In this situation, the concatenation incorrectly became "" + "goodbye" + "goodbye"
, which produced "goodbyegoodbye"
as the output.
In OpenJDK 17.0.14, string concatenation evaluates and eagerly converts each argument to a string in left-to-right order. In this situation, the concatenation correctly becomes "" + "good" + "goodbye"
, which produces "goodgoodbye"
as the output.
The resolution of this issue has the same effect as using a version of the javac
compiler that was available before OpenJDK 9 or running javac
with the -XDstringConcat=inline
command-line option.
See JDK-8273914 (JDK Bug System).
Option for jar
command to avoid overwriting files when extracting an archive
In earlier OpenJDK releases, when the jar
tool extracted files from an archive, the jar
tool overwrote any existing files with the same name in the target directory.
OpenJDK 17.0.14 adds a new ‑k
(or ‑‑keep-old-files
) option that you can use to ensure that the jar
tool does not overwrite existing files. You can specify this new option in either short or long format.
For example:
-
jar xkf myfile.jar
-
jar --extract ‑‑keep-old-files ‑‑file myfile.jar
In OpenJDK 17.0.14, the jar
tool retains the old behavior by default. If you do not explicitly specify the ‑k
(or ‑‑keep-old-files
) option, the jar
tool automatically overwrites any existing files with the same name.
See JDK-8335912 (JDK Bug System) and JDK bug system reference ID: JDK-8337499.
IANA time zone database updated to version 2024b
In OpenJDK 17.0.14, the in-tree copy of the Internet Assigned Numbers Authority (IANA) time zone database is updated to version 2024b. This update is primarily concerned with improving historical data for Mexico, Mongolia, and Portugal.
This update to the IANA database also includes the following changes:
-
Asia/Choibalsan
is an alias forAsia/Ulaanbaatar
. - The Middle European Time (MET) time zone is equal to Central European Time (CET).
Some legacy time-zone IDs are mapped to geographical names rather than fixed offsets:
-
Eastern Standard Time (EST) is mapped to
America/Panama
rather than-5:00
. -
Mountain Standard Time (MST) is mapped to
America/Phoenix
rather than-7:00
. -
Hawaii Standard Time (HST) is mapped to
Pacific/Honolulu
rather than-10:00
.
OpenJDK overrides the change in the legacy time-zone ID mappings by retaining the existing fixed-offset mapping.
-
Eastern Standard Time (EST) is mapped to
See JDK-8339637 (JDK Bug System).
Revised on 2025-01-30 11:17:24 UTC