diff --git a/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java b/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java index 5b13b90..71c7494 100644 --- a/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java +++ b/druid-hdrhistogram/src/main/java/org/apache/druid/query/aggregation/sketch/HdrHistogram/HdrHistogramToQuantilePostAggregator.java @@ -2,8 +2,9 @@ package org.apache.druid.query.aggregation.sketch.HdrHistogram; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.common.collect.Ordering; import com.google.common.collect.Sets; -import org.HdrHistogram.Histogram; +import com.google.common.primitives.Longs; import org.HdrHistogram.HistogramSketch; import org.apache.druid.java.util.common.IAE; import org.apache.druid.query.aggregation.AggregatorFactory; @@ -23,6 +24,14 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator { private final String fieldName; private final float probability; + static final Comparator COMPARATOR = new Ordering(){ + @Override + public int compare(Object o, Object o1) + { + return Longs.compare(((Number) o).longValue(), ((Number) o1).longValue()); + } + }.nullsFirst(); + @JsonCreator public HdrHistogramToQuantilePostAggregator( @JsonProperty("name") String name, @@ -49,13 +58,8 @@ public class HdrHistogramToQuantilePostAggregator implements PostAggregator { } @Override - public Comparator getComparator() { - return new Comparator(){ - @Override - public int compare(final Long a, final Long b){ - return Long.compare(a, b); - } - }; + public Comparator getComparator() { + return COMPARATOR; } @Nullable