The description pretty much explains the decision. As of Java 1.5 you can use volatile
instance variable. It will correctly handle memory visibility issues and using double checked locking is no longer a bug.
It doesn't mean that using volatile
is the solution. But in 1.5 Java Memory Model was redefined, making volatile
sufficient.