@ahgittin the memory model hasn't been tightened since the big changes in Java 5, so this pattern is still broken. I double-checked with @pveentjer (thanks Peter!). The volatile is required.