When a SequentialAccessSparseVector is serialized and deserialized using VectorWritable, the result vector and the original vector are equivalent, yet equals returns false.
The following unit-test reproduces the problem:
The problem seems to be that the original vector name is null, while the new vector's name is an empty string. The same issue probably also happens with RandomAccessSparseVector.
SequentialAccessSparseVectorWritable (line 40):
RandomAccessSparseVectorWritable (line 42):
The simplest fix is probably to change the default Vector's name from null to the empty string.