summaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2018-10-15 07:45:36 +0000
committerArne Juul <arnej@yahoo-inc.com>2018-10-16 08:45:06 +0000
commite1f34ea289348f11bd0842bd23294166d09a38ab (patch)
treec1095dee82963b24634c880cfb5068bb516767af /container-search/src
parenta7f5771a74e31c305cd0bda3dc75b1b1fa5d97ff (diff)
sort missing (null) field values
This reverts commit 5801a5e4019324cd3212ef5da40f22268c01a03c.
Diffstat (limited to 'container-search/src')
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/FieldComparator.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/result/FieldComparator.java b/container-search/src/main/java/com/yahoo/search/result/FieldComparator.java
index d60075dccd8..c835ab744b1 100644
--- a/container-search/src/main/java/com/yahoo/search/result/FieldComparator.java
+++ b/container-search/src/main/java/com/yahoo/search/result/FieldComparator.java
@@ -59,11 +59,6 @@ public class FieldComparator extends ChainableComparator {
Object a = getField(first,fieldName);
Object b = getField(second,fieldName);
- // If either of the values are null, don't touch the ordering
- // This is to avoid problems if the sorting is called before the
- // result is filled.
- if ((a == null) || (b == null)) return 0;
-
int x = compareValues(a, b, fieldOrder.getSorter());
if (x != 0) {
if (fieldOrder.getSortOrder() == Sorting.Order.DESCENDING)
@@ -123,6 +118,12 @@ public class FieldComparator extends ChainableComparator {
@SuppressWarnings("rawtypes")
private int compareValues(Object first, Object second, Sorting.AttributeSorter s) {
+ if (first == null) {
+ if (second == null) return 0;
+ return -1;
+ } else if (second == null) {
+ return 1;
+ }
if (first.getClass().isInstance(second)
&& first instanceof Comparable) {
// We now know: