The serial version of the class does not match that of the class descriptor read from the stream
This means that it has same class name between what you do serialize (this means ObjectOutputStream.writeObject()) and what you deserialize (this means ObjectInputStream.readObject()), but it isn't same class.
In java serialize system, every serializable class has its own ID code that called 'serialVersionUID', and it is recommended every serializable class declared that value such as:
If you don't include that, java creates ID according with what methods and fields are declared in that class. So unless you declared ID, that may or may not be changed when you change class. You can see current ID such as:
serialver utility is in JDK/bin directory. [ May 15, 2007: Message edited by: Bupjae Lee ]