Make sure. 1. All the classes implement "Serializable" interface. Parent, Child classes and if any other classes that the class references to. 2. Make sure readObject() is invoked in the same order in which writeObject was invoked. Here is the code that i tried and it works fine.