Put/Delete values cannot be tested with MRUnit
--
Key: HBASE-4966
URL: https://issues.apache.org/jira/browse/HBASE-4966
Project: HBase
Issue Type: Bug
Components: client, mapreduce
Affects Versions: 0.90.4
Reporter: Nicholas Telford
Priority: Minor
When using the IdentityTableReducer, which expects input values of either a Put
or Delete object, testing with MRUnit the Mapper with MRUnit is not possible
because neither Put nor Delete implement equals().
We should implement equals() on both such that equality means:
* Both objects are of the same class (in this case, Put or Delete)
* Both objects are for the same key.
* Both objects contain an equal set of KeyValues (applicable only to Put)
KeyValue.equals() appears to already be implemented, but only checks for
equality of row key, column family and column qualifier - two KeyValues can be
considered equal if they contain different values. This won't work for
testing.
Instead, the Put.equals() and Delete.equals() implementations should do a
deep equality check on their KeyValues, like this:
myKv.equals(theirKv) Bytes.equals(myKv.getValue(), theirKv.getValue());
NOTE: This would impact any code that relies on the existing identity
implementation of Put.equals() and Delete.equals(), therefore cannot be
guaranteed to be backwards-compatible.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira