We just fixed a bug in our code that was a result of Serialization and subclassing. We created an AbstractBase class that contained a few attributes. Our child classes all extended the AbstractBase and implemented Serializable. Well, the values in the AbstractBase did not get serialized when we sent our objects over JMS.
When the objects where inflated on the other side, the values in AbstractBase where reinitialized via the AbstractBase constructor. Because the default values were almost always the expected values, we missed this in testing. When we did our Junit tests the error did not show because the objects hadn't been sent over the wire via JMS.
Moral is the attributes of your parent don't get serialized if your parent doesn't explictly declare they are serializable.

