I've noticed throughout the codebase that there are a lot of classes that are Serializable and Cloneable. These are two of the hardest bits of Java development to get right and the easiest to make mistakes. What's the impetus behind making so many classes Serializable and Cloneable?
I've run into a number of classes that don't correctly or completely implement one or the other interfaces/concepts, but there are so many and I started to wonder why. I've dug about in the code to some extent, but I've only seen a few uses of cloning and no serialization. Thanks, -Nathan