HDFS-5381. ExtendedBlock#hashCode should use both blockId and block pool ID (Benoy Antony via Colin Patrick McCabe)
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1593346 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
1c5902fba2
commit
280c764f54
|
@ -435,6 +435,10 @@ Release 2.5.0 - UNRELEASED
|
|||
HDFS-6337. Setfacl testcase is failing due to dash character in username
|
||||
in TestAclCLI (umamahesh)
|
||||
|
||||
HDFS-5381. ExtendedBlock#hashCode should use both blockId and block pool ID
|
||||
(Benoy Antony via Colin Patrick McCabe)
|
||||
|
||||
|
||||
Release 2.4.1 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -112,7 +112,8 @@ public class ExtendedBlock {
|
|||
|
||||
@Override // Object
|
||||
public int hashCode() {
|
||||
return block.hashCode();
|
||||
int result = 31 + poolId.hashCode();
|
||||
return (31 * result + block.hashCode());
|
||||
}
|
||||
|
||||
@Override // Object
|
||||
|
|
|
@ -50,6 +50,26 @@ public class TestExtendedBlock {
|
|||
new ExtendedBlock(POOL_A, BLOCK_1_GS2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHashcode() {
|
||||
|
||||
// Different pools, same block id -> different hashcode
|
||||
assertNotEquals(
|
||||
new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode(),
|
||||
new ExtendedBlock(POOL_B, BLOCK_1_GS1).hashCode());
|
||||
|
||||
// Same pool, different block id -> different hashcode
|
||||
assertNotEquals(
|
||||
new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode(),
|
||||
new ExtendedBlock(POOL_A, BLOCK_2_GS1).hashCode());
|
||||
|
||||
// Same block -> same hashcode
|
||||
assertEquals(
|
||||
new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode(),
|
||||
new ExtendedBlock(POOL_A, BLOCK_1_GS1).hashCode());
|
||||
|
||||
}
|
||||
|
||||
private static void assertNotEquals(Object a, Object b) {
|
||||
assertFalse("expected not equal: '" + a + "' and '" + b + "'",
|
||||
a.equals(b));
|
||||
|
|
Loading…
Reference in New Issue