From 5cad1f0eca8583212a0686902728cddf4da76d11 Mon Sep 17 00:00:00 2001 From: Wesley Gong Date: Wed, 1 Aug 2012 18:17:19 -0700 Subject: [PATCH] Handle null values when sorting by StringOrdComparator --- .../browseengine/bobo/sort/DocComparatorSource.java | 4 ++++ .../bobo/sort/ReverseDocComparatorSource.java | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java b/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java index 2ad990bc..f69ec295 100644 --- a/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java +++ b/bobo-browse/src/main/java/com/browseengine/bobo/sort/DocComparatorSource.java @@ -140,6 +140,10 @@ public int compare(ScoreDoc doc1, ScoreDoc doc2) { } public String value(ScoreDoc doc) { + if (values.lookup[values.order[doc.doc]] == null) { + return null; + } + return String.valueOf(values.lookup[values.order[doc.doc]]); } }; diff --git a/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java b/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java index 3c203d11..a3108141 100644 --- a/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java +++ b/bobo-browse/src/main/java/com/browseengine/bobo/sort/ReverseDocComparatorSource.java @@ -50,6 +50,16 @@ public static class ReverseComparable implements Comparable,Serializable{ public int compareTo(Object o) { if (o instanceof ReverseComparable){ Comparable inner = ((ReverseComparable)o)._inner; + + if (_inner == null) { + if (inner == null) { + return 0; + } + return 1; + } else if (inner == null) { + return -1; + } + return -_inner.compareTo(inner); } else{