exception – Why does writeObject throw java.io.NotSerializableException and how do I fix it?

exception – Why does writeObject throw java.io.NotSerializableException and how do I fix it?

The fields of your object have in turn their fields, some of which do not implement Serializable. In your case the offending class is TransformGroup. How to solve it?

  • if the class is yours, make it Serializable
  • if the class is 3rd party, but you dont need it in the serialized form, mark the field as transient
  • if you need its data and its third party, consider other means of serialization, like JSON, XML, BSON, MessagePack, etc. where you can get 3rd party objects serialized without modifying their definitions.

java.io.NotSerializableException can occur when you serialize an inner class instance because:

serializing such an inner class instance will result in serialization
of its associated outer class instance as well

Serialization of inner classes (i.e., nested classes that are not
static member classes), including local and anonymous classes, is
strongly discouraged

Ref: The Serializable Interface

exception – Why does writeObject throw java.io.NotSerializableException and how do I fix it?

Make the class serializable by implementing the interface java.io.Serializable.

  • java.io.Serializable – Marker Interface which does not have any methods in it.
  • Purpose of Marker Interface – to tell the ObjectOutputStream that this object is a serializable object.

Leave a Reply

Your email address will not be published.