ACCUMULO-3462 use object reference equality to remove the minimum object queued
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/0013e46e Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/0013e46e Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/0013e46e Branch: refs/heads/master Commit: 0013e46e6b7f195f9d17dbd540b841d2933ac37b Parents: f50db38 4b5ea53 Author: Eric C. Newton <eric.new...@gmail.com> Authored: Fri Oct 2 13:15:15 2015 -0400 Committer: Eric C. Newton <eric.new...@gmail.com> Committed: Fri Oct 2 13:15:15 2015 -0400 ---------------------------------------------------------------------- .../java/org/apache/accumulo/tserver/CompactionQueue.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/0013e46e/server/tserver/src/main/java/org/apache/accumulo/tserver/CompactionQueue.java ---------------------------------------------------------------------- diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/CompactionQueue.java index bbb6536,1e7c086..f87131e --- a/server/tserver/src/main/java/org/apache/accumulo/tserver/CompactionQueue.java +++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/CompactionQueue.java @@@ -48,9 -35,15 +48,15 @@@ class CompactionQueue extends AbstractQ if (task.size() == 0) return null; - Comparable min = Collections.min(task); - Iterator<Comparable> iterator = task.iterator(); + TraceRunnable min = Collections.min(task, comparator); - task.remove(min); - return min; ++ Iterator<TraceRunnable> iterator = task.iterator(); + while (iterator.hasNext()) { + if (iterator.next() == min) { + iterator.remove(); - return (Runnable) min; ++ return min; + } + } + throw new IllegalStateException("Minimum object found, but not there when removing"); } @Override