JDK-8365054 : Release Note: Performance Regression in java.lang.ClassValue::get
  • Type: Sub-task
  • Component: core-libs
  • Sub-Component: java.lang
  • Affected Version: 25
  • Priority: P4
  • Status: Resolved
  • Resolution: Delivered
  • Submitted: 2025-08-07
  • Updated: 2025-08-08
  • Resolved: 2025-08-08
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 25
25Resolved
Description
JDK-8351996 updated `ClassValue` in JDK 25 to make it more robust in various threading conditions. Unfortunately, this update caused `ClassValue.get` to run more slowly after a call to `ClassValue.remove`. Most applications do not use `ClassValue` directly, but libraries which call both `ClassValue.get` and `remove` may be affected by the slowdown. An example of a library affected by the slowdown is the standard library in Scala 2.12. The slowdown is fixed in in JDK-8358535.
Comments
To make the release more immediately relevant to people scanning the release note the first sentence should say what has been changed. Then give the backstory. They should know in the first sentence whether they need to keep reading. Leave out the lamentation ('unfortunately'). Almost no one will know whether they have been affected, it will be sufficient that it has been fixed.
08-08-2025