From 70f00eb229e5334591b9497caba5231d70bac8f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20B=C3=BCscher?= Date: Tue, 13 Nov 2018 22:07:50 +0100 Subject: [PATCH] Remove Comparable interface from ScoreAccessor The way ScoreAccessor implements `compareTo()` is problematic because it doesn't completely follow the Comparable contract, specificaly symmetry (if x is a ScoreAccessor and y any Number then x.comparTo(y) works, but y.compareTo(x) generally does not even compile). Fortunately we don't seem to use the fact that ScoreAccessor is a Comparable anywhere, so we can simply remove it. --- .../main/java/org/elasticsearch/script/ScoreAccessor.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/script/ScoreAccessor.java b/server/src/main/java/org/elasticsearch/script/ScoreAccessor.java index b3cdecb3e0485..721939cce9784 100644 --- a/server/src/main/java/org/elasticsearch/script/ScoreAccessor.java +++ b/server/src/main/java/org/elasticsearch/script/ScoreAccessor.java @@ -30,7 +30,7 @@ * The provided {@link DocLookup} is used to retrieve the score * for the current document. */ -public final class ScoreAccessor extends Number implements Comparable { +public final class ScoreAccessor extends Number { Scorable scorer; @@ -65,9 +65,4 @@ public float floatValue() { public double doubleValue() { return score(); } - - @Override - public int compareTo(Number o) { - return Float.compare(this.score(), o.floatValue()); - } }