You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ho...@apache.org on 2010/06/01 01:27:45 UTC

svn commit: r949889 - in /lucene/solr/branches/branch-1.4: ./ src/java/org/apache/solr/handler/ src/java/org/apache/solr/handler/admin/ src/java/org/apache/solr/request/ src/test/org/apache/solr/handler/admin/

Author: hossman
Date: Mon May 31 23:27:44 2010
New Revision: 949889

URL: http://svn.apache.org/viewvc?rev=949889&view=rev
Log:
merging r883178 from solr/branches/branch-1.5-dev for SOLR-1563

Modified:
    lucene/solr/branches/branch-1.4/   (props changed)
    lucene/solr/branches/branch-1.4/CHANGES.txt
    lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/BinaryUpdateRequestHandler.java   (props changed)
    lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/DumpRequestHandler.java   (props changed)
    lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/MoreLikeThisHandler.java   (props changed)
    lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
    lucene/solr/branches/branch-1.4/src/java/org/apache/solr/request/RawResponseWriter.java   (props changed)
    lucene/solr/branches/branch-1.4/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java

Propchange: lucene/solr/branches/branch-1.4/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon May 31 23:27:44 2010
@@ -1 +1 @@
-/lucene/solr/trunk:881642,881906,882838,883566,884393,891596,891889,898119,903271,911245,919871,925898
+/lucene/solr/trunk:881642,881906,882838,883178,883566,884393,891596,891889,898119,903271,911245,919871,925898

Modified: lucene/solr/branches/branch-1.4/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.4/CHANGES.txt?rev=949889&r1=949888&r2=949889&view=diff
==============================================================================
--- lucene/solr/branches/branch-1.4/CHANGES.txt (original)
+++ lucene/solr/branches/branch-1.4/CHANGES.txt Mon May 31 23:27:44 2010
@@ -95,6 +95,9 @@ Bug Fixes
   it would just fail in unexpected ways.  This has been changed so that it
   will fail with a clear error message on initialization. (hossman)
 
+* SOLR-1563: Binary fields, including trie-based numeric fields, caused null
+  pointer exceptions in the luke request handler. (yonik)
+
 ================== Release 1.4.0 ==================
 Release Date:  See http://lucene.apache.org/solr for the official release date.
 

Propchange: lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/BinaryUpdateRequestHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon May 31 23:27:44 2010
@@ -1 +1 @@
-/lucene/solr/trunk/src/java/org/apache/solr/handler/BinaryUpdateRequestHandler.java:881642,881906,882838,883566,884393,891596,891889,898119,903271,906553,911245,919871,925898
+/lucene/solr/trunk/src/java/org/apache/solr/handler/BinaryUpdateRequestHandler.java:881642,881906,882838,883178,883566,884393,891596,891889,898119,903271,906553,911245,919871,925898

Propchange: lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/DumpRequestHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon May 31 23:27:44 2010
@@ -1 +1 @@
-/lucene/solr/trunk/src/java/org/apache/solr/handler/DumpRequestHandler.java:881642,881906,882838,883566,884393,891596,891889,898119,903271,906553,911245,919871,925898
+/lucene/solr/trunk/src/java/org/apache/solr/handler/DumpRequestHandler.java:881642,881906,882838,883178,883566,884393,891596,891889,898119,903271,906553,911245,919871,925898

Propchange: lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon May 31 23:27:44 2010
@@ -1 +1 @@
-/lucene/solr/trunk/src/java/org/apache/solr/handler/MoreLikeThisHandler.java:881642,881906,882838,883566,884393,891596,891889,898119,903271,906553,911245,919871,925898
+/lucene/solr/trunk/src/java/org/apache/solr/handler/MoreLikeThisHandler.java:881642,881906,882838,883178,883566,884393,891596,891889,898119,903271,906553,911245,919871,925898

Modified: lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?rev=949889&r1=949888&r2=949889&view=diff
==============================================================================
--- lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/solr/branches/branch-1.4/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Mon May 31 23:27:44 2010
@@ -53,6 +53,7 @@ import org.apache.solr.common.params.Com
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.Base64;
 import org.apache.solr.handler.RequestHandlerBase;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.request.SolrQueryResponse;
@@ -240,12 +241,20 @@ public class LukeRequestHandler extends 
       f.add( "type", (ftype==null)?null:ftype.getTypeName() );
       f.add( "schema", getFieldFlags( sfield ) );
       f.add( "flags", getFieldFlags( fieldable ) );
-      
-      Term t = new Term( fieldable.name(), fieldable.stringValue() );
+
+      Term t = new Term(fieldable.name(), ftype!=null ? ftype.storedToIndexed(fieldable) : fieldable.stringValue());
+
       f.add( "value", (ftype==null)?null:ftype.toExternal( fieldable ) );
+
+      // TODO: this really should be "stored"
       f.add( "internal", fieldable.stringValue() );  // may be a binary number
+
+      byte[] arr = fieldable.getBinaryValue();
+      if (arr != null) {
+        f.add( "binary", Base64.byteArrayToBase64(arr, 0, arr.length));
+      }
       f.add( "boost", fieldable.getBoost() );
-      f.add( "docFreq", reader.docFreq( t ) ); // this can be 0 for non-indexed fields
+      f.add( "docFreq", t.text()==null ? 0 : reader.docFreq( t ) ); // this can be 0 for non-indexed fields
             
       // If we have a term vector, return that
       if( fieldable.isTermVectorStored() ) {

Propchange: lucene/solr/branches/branch-1.4/src/java/org/apache/solr/request/RawResponseWriter.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon May 31 23:27:44 2010
@@ -1,2 +1,2 @@
-/lucene/solr/trunk/src/java/org/apache/solr/request/RawResponseWriter.java:881642,881906,882838,883566,884393,891596,891889,898119,903271,911245,919871,925898
+/lucene/solr/trunk/src/java/org/apache/solr/request/RawResponseWriter.java:881642,881906,882838,883178,883566,884393,891596,891889,898119,903271,911245,919871,925898
 /lucene/solr/trunk/src/java/org/apache/solr/response/RawResponseWriter.java:906553

Modified: lucene/solr/branches/branch-1.4/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java
URL: http://svn.apache.org/viewvc/lucene/solr/branches/branch-1.4/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java?rev=949889&r1=949888&r2=949889&view=diff
==============================================================================
--- lucene/solr/branches/branch-1.4/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java (original)
+++ lucene/solr/branches/branch-1.4/src/test/org/apache/solr/handler/admin/LukeRequestHandlerTest.java Mon May 31 23:27:44 2010
@@ -17,17 +17,25 @@
 
 package org.apache.solr.handler.admin;
 
-import junit.framework.TestCase;
-
-import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.util.AbstractSolrTestCase;
 
 /**
  * :TODO: currently only tests some of the utilities in the LukeRequestHandler
  */
-public class LukeRequestHandlerTest extends TestCase {
-  
+public class LukeRequestHandlerTest extends AbstractSolrTestCase {
+
+  @Override
+  public String getSchemaFile() {
+    return "schema12.xml";
+  }
+
+  @Override
+  public String getSolrConfigFile() {
+    return "solrconfig.xml";
+  }
+
   /** tests some simple edge cases */
-  public void testHistogramPowerOfTwoBucket() {
+  public void doTestHistogramPowerOfTwoBucket() {
     assertHistoBucket(1,  1);
     assertHistoBucket(2,  2);
     assertHistoBucket(4,  3);
@@ -45,8 +53,47 @@ public class LukeRequestHandlerTest exte
     assertHistoBucket(MAX_VALID*2, MAX_VALID+1 );
     
   }
+
   private void assertHistoBucket(int expected, int in) {
     assertEquals("histobucket: " + in, expected,
                  LukeRequestHandler.TermHistogram.getPowerOfTwoBucket( in ));
   }
+
+  public void testLuke() {
+    doTestHistogramPowerOfTwoBucket();
+
+    assertU(adoc("id","SOLR1000", "name","Apache Solr",
+      "solr_si", "10",
+      "solr_sl", "10",
+      "solr_sf", "10",
+      "solr_sd", "10",
+      "solr_s", "10",
+      "solr_sI", "10",
+      "solr_sS", "10",
+      "solr_t", "10",
+      "solr_tt", "10",
+      "solr_b", "true",
+      "solr_i", "10",
+      "solr_l", "10",
+      "solr_f", "10",
+      "solr_d", "10",
+      "solr_ti", "10",
+      "solr_tl", "10",
+      "solr_tf", "10",
+      "solr_td", "10",
+      "solr_pi", "10",
+      "solr_pl", "10",
+      "solr_pf", "10",
+      "solr_pd", "10",
+      "solr_dt", "2000-01-01T01:01:01Z",
+      "solr_tdt", "2000-01-01T01:01:01Z",
+      "solr_pdt", "2000-01-01T01:01:01Z"
+    ));
+    assertU(commit());
+
+    // test that Luke can handle all of the field types
+    assertQ(req("qt","/admin/luke", "id","SOLR1000"));
+  }
+
+
 }