| 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
|