The linked list of chunks maintained by Map becomes broken when a chunk is deallocated. The next pointer for the deallocated chunk is nulled but the next pointer for the previous entry is not fixed up.
See Map.freeContiguousChunks()