osm-lib
osm-lib copied to clipboard
Custom serialization/deserialization code broken
MapDB has two levels of cache. The serialized data is cached in the sense that the OS will cache memory-mapped file pages. The deserialized objects are cached in an instance cache.
Osm-lib was only working for fetching data because the instance cache was set to a really huge size, and all the objects were remaining in instance cache.
In fact, the deserialization code fails with an exception. I discovered this by calling MapDB's cacheDisable() and/or setting the instance cache size much smaller. Therefore we aren't actually sure that a round trip through MapDB preserves the OSM data.
We need a test that does thorough comparisons using cacheDisable() to make sure deserialization works right!
This should be fixed now, but we should still have tests for this.