Peter Veentjer provides us with a gentle warning that just because a class is immutable doesn't make it thread safe. To demonstrate he uses a very small but puzzling code fragment. public class MyInt{ private int x; public MyInt(int y){ this.x = y; } public int getValue(){ return x; } } Peter goes on to explain some of the more subtle points in the new Java 5 memory model and how it can potentially allow access to partially constructed objects. The solution is to declare the immutable to be final or volatile. If you are wondering what can possibily go wrong in this piece of code than solution to the problem can been attributed