[mb-commits] r13638 - in search_server/trunk/servlet/src: main/java/org/musicbrainz/search/servlet main/java/org/musicbrainz/search/servlet/mmd2 test/java/org/musicbrainz/search/servlet

[email protected] Thu, 28 Feb 2013 04:47:28 +0000
Newsgroups gmane.comp.audio.musicbrainz.cvs
Message-ID <E1UAvOx-0005km-Vn@wiley>
Author: ijabz
Date: 2013-02-28 04:41:41 +0000 (Thu, 28 Feb 2013)
New Revision: 13638

Added:
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/CallableSearch.java
   search_server/trunk/servlet/src/test/java/org/musicbrainz/search/servlet/SearchAllTest.java
Modified:
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServerServlet.java
   search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java
Log:
#SEARCH-72:Added improvements and a test for searchall

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java	2013-02-27 15:42:53 UTC (rev 13637)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/Results.java	2013-02-28 04:41:41 UTC (rev 13638)
@@ -36,7 +36,7 @@
  */
 public class Results implements Comparable<Results>{
 
-    public float maxScore;
+    public float maxScore=0.0f;
     public int offset;
     public int totalHits;
     public List<Result> results;
@@ -47,7 +47,26 @@
 
     public int compareTo(Results results)
     {
-        return Float.compare(maxScore,results.maxScore);
+        //If I don't explicity check for Nan behaviour is inconsistent test fails under maven, possibly a fix in java version
+        //As we are only ever comparing 6 numbers not a big deal
+        if(Float.isNaN(maxScore))
+        {
+            if(Float.isNaN(results.maxScore))
+            {
+                return 0;
+            }
+            else
+            {
+                return -1;
+            }
+        }
+        if(Float.isNaN(results.maxScore))
+        {
+            return 1;
+        }
+        int result =  (maxScore<results.maxScore ? -1 : (maxScore==results.maxScore ? 0 : 1));
+        return result;
+
     }
 
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServerServlet.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServerServlet.java	2013-02-27 15:42:53 UTC (rev 13637)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/SearchServerServlet.java	2013-02-28 04:41:41 UTC (rev 13638)
@@ -703,28 +703,4 @@
         out.close();
     }
 
-    // Used by doAllSearch()
-    class CallableSearch implements Callable<Results>
-    {
-
-        private final SearchServer searchServer;
-        private final String query;
-        private final Integer offset;
-        private final Integer limit;
-
-        public CallableSearch(SearchServer searchServer, String query, Integer offset, Integer limit)
-        {
-            this.searchServer = searchServer;
-            this.query = query;
-            this.offset = offset;
-            this.limit = limit;
-        }
-
-        @Override
-        public Results call() throws Exception
-        {
-            return searchServer.search(query, offset, limit);
-        }
-
-    }
 }

Modified: search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java
===================================================================
--- search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java	2013-02-27 15:42:53 UTC (rev 13637)
+++ search_server/trunk/servlet/src/main/java/org/musicbrainz/search/servlet/mmd2/AllWriter.java	2013-02-28 04:41:41 UTC (rev 13638)
@@ -56,6 +56,7 @@
         float bestMaxScore=resultsList.get(0).maxScore;
         for(Results next:resultsList)
         {
+            System.out.println(next.maxScore);
             next.maxScore=bestMaxScore;
         }
         ObjectFactory of  = new ObjectFactory();