HBASE-19884 BucketEntryGroup's equals, hashCode and compareTo methods are not consistent

Move back to default equals and hashCode.
Remove compareTo and Comparator to PriorityQueue.

Signed-off-by: Michael Stack <stack@apache.org>
This commit is contained in:
Peter Somogyi 2018-01-30 10:14:08 +01:00 committed by Michael Stack
parent 38c8144a06
commit d472422475
1 changed files with 3 additions and 26 deletions

View File

@ -36,7 +36,6 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.NavigableSet; import java.util.NavigableSet;
import java.util.Objects;
import java.util.PriorityQueue; import java.util.PriorityQueue;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ArrayBlockingQueue;
@ -821,7 +820,8 @@ public class BucketCache implements BlockCache, HeapSize {
} }
} }
PriorityQueue<BucketEntryGroup> bucketQueue = new PriorityQueue<>(3); PriorityQueue<BucketEntryGroup> bucketQueue = new PriorityQueue<>(3,
Comparator.comparingLong(BucketEntryGroup::overflow));
bucketQueue.add(bucketSingle); bucketQueue.add(bucketSingle);
bucketQueue.add(bucketMulti); bucketQueue.add(bucketMulti);
@ -1350,7 +1350,7 @@ public class BucketCache implements BlockCache, HeapSize {
* the eviction algorithm takes the appropriate number of elements out of each * the eviction algorithm takes the appropriate number of elements out of each
* according to configuration parameters and their relative sizes. * according to configuration parameters and their relative sizes.
*/ */
private class BucketEntryGroup implements Comparable<BucketEntryGroup> { private class BucketEntryGroup {
private CachedEntryQueue queue; private CachedEntryQueue queue;
private long totalSize = 0; private long totalSize = 0;
@ -1390,29 +1390,6 @@ public class BucketCache implements BlockCache, HeapSize {
public long totalSize() { public long totalSize() {
return totalSize; return totalSize;
} }
@Override
public int compareTo(BucketEntryGroup that) {
return Long.compare(this.overflow(), that.overflow());
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
BucketEntryGroup that = (BucketEntryGroup) o;
return totalSize == that.totalSize && bucketSize == that.bucketSize
&& Objects.equals(queue, that.queue);
}
@Override
public int hashCode() {
return Objects.hash(queue, totalSize, bucketSize);
}
} }
/** /**