Whenever the class structure gets change after we serialize and before we de serialize it. Then during de serialization process , it finds an incompatible class and hence throws an exception: java.io.InvalidClassException: SingletonClass; local class incompatible: stream classdesc serialVersionUID = ...