This is technically not the answer. But I hope this helps anyway.
When creating a Java Swing-based desktop application that was used to model molecular research, we produced a series of very complex and interconnected object plots on disk.
Even after we made our way on issues related to external and serializable communication, we had to abandon the whole approach and start a new one, since Java serialization is very sensitive to the structure of the object / name, etc. This means that innocent model refactoring led to production disruptions when users tried to load old serialized models.
In the end, we created a data structure compatible with the data warehouse (without strong links to other nodes on the chart) and serialized this structure. It was much simpler, fewer errors, and much faster than serializing and deserializing the original graph. It also meant that we could reorganize / modify our domain graph objects at our discretion if the adapters (the components that converted the Domain objects to DataStore objects) were properly updated.
source share