JDK 21 | JDK 22 | JDK 23 |
---|---|---|
21.0.7-oracleFixed | 22.0.2Fixed | 23 b11Fixed |
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
A DESCRIPTION OF THE PROBLEM : In Java 17 StringBuilder.toString was calling StringLatin1.newString that returned a literal "" for len == 0. After https://bugs.openjdk.org/browse/JDK-8282429 https://github.com/openjdk/jdk/commit/bab431cc120fe09be371dadef0c1caf79ec9eef4 Java 21 returns a new String object each time. While it is minor, it still looks like a regression that effects such code paths as deserialisation. REGRESSION : Last worked in version 17.0.10 STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : new StringBuilder().toString() == "" ACTUAL - false ---------- BEGIN SOURCE ---------- public class Test { public static void main(String[] args) { System.out.println(new StringBuilder().toString() == ""); } } ---------- END SOURCE ---------- FREQUENCY : always
|