[
https://issues.apache.org/jira/browse/KYLIN-4327?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17016640#comment-17016640
]
ASF GitHub Bot commented on KYLIN-4327:
---------------------------------------
nichunen commented on pull request #1043: KYLIN-4327 TOPN Comparator may
violate its general contract
URL: https://github.com/apache/kylin/pull/1043
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> TOPN Comparator may violate its general contract
> -------------------------------------------------
>
> Key: KYLIN-4327
> URL: https://issues.apache.org/jira/browse/KYLIN-4327
> Project: Kylin
> Issue Type: Improvement
> Reporter: Yifei Wu
> Assignee: Yifei Wu
> Priority: Minor
> Fix For: v2.6.5, v3.1.0
>
>
> in current TopN, it should save top(k) result and keep it in double value,
> just like this:
> ```
> public class Counter<T> implements Serializable{
> ...
> protected T item;
> protected double count;
> ...
> }
> ```
> But its Comparator method use "==" directly to compare the result, it may
> cause the error "*violate its general contract*" when calling it.
> ```
> private static final Comparator ASC_COMPARATOR = new
> Comparator<Counter>() {
> @Override
> public int compare(Counter o1, Counter o2) {
> return o1.getCount() > o2.getCount() ? 1 : o1.getCount() ==
> o2.getCount() ? 0 : -1;
> }
> };
> ```
--
This message was sent by Atlassian Jira
(v8.3.4#803005)