[ https://issues.apache.org/jira/browse/HBASE-4966?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zhihong Yu reassigned HBASE-4966: --------------------------------- Assignee: Nicholas Telford > 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 > Assignee: 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: > {code:java} > myKv.equals(theirKv) && Bytes.equals(myKv.getValue(), theirKv.getValue()); > {code} > 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