mahout-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Danny Leshem (JIRA)" <>
Subject [jira] Created: (MAHOUT-379) SequentialAccessSparseVector.equals does not agree with AbstractVector.equivalent
Date Wed, 14 Apr 2010 09:08:50 GMT
SequentialAccessSparseVector.equals does not agree with AbstractVector.equivalent

                 Key: MAHOUT-379
             Project: Mahout
          Issue Type: Bug
          Components: Math
    Affects Versions: 0.4
            Reporter: Danny Leshem
            Priority: Minor
             Fix For: 0.3

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:
public void testSequentialAccessSparseVectorEquals() throws Exception {
    final Vector v = new SequentialAccessSparseVector(1);
    final VectorWritable vectorWritable = new VectorWritable(v);
    final VectorWritable vectorWritable2 = new VectorWritable();
    writeAndRead(vectorWritable, vectorWritable2);
    final Vector v2 = vectorWritable2.get();

    assertTrue(AbstractVector.equivalent(v, v2));
    assertEquals(v, v2); // This line fails!

private void writeAndRead(Writable toWrite, Writable toRead) throws IOException {
    final ByteArrayOutputStream baos = new ByteArrayOutputStream();
    final DataOutputStream dos = new DataOutputStream(baos);

    final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    final DataInputStream dis = new DataInputStream(bais);


This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message