No runtime warnings for synchronization on value-based classes
Zheka Kozlov
orionllmain at gmail.com
Wed Feb 24 05:30:08 UTC 2021
Hi!
// Main.java
public class Main {
public static void main(String[] args) {
f(0D);
}
private static void f(Double value) {
synchronized (value) {
System.out.println(value);
}
}
}
> java --version
openjdk 16 2021-03-16
OpenJDK Runtime Environment (build 16+36-2231)
OpenJDK 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)
> javac Main.java
Main.java:7: warning: [synchronization] attempt to synchronize on an
instance of a value-based class
synchronized (value) {
^
1 warning
> java Main
0.0
According to JEP 390 [1], there should be a runtime warning. But there is
none. Or did I miss something?
[1] https://openjdk.java.net/jeps/390
More information about the jdk-dev
mailing list