You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by st...@apache.org on 2011/12/09 17:03:42 UTC

svn commit: r1212493 - in /lucene/dev/trunk/solr/contrib/clustering: CHANGES.txt src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java

Author: stanislaw
Date: Fri Dec  9 16:03:42 2011
New Revision: 1212493

URL: http://svn.apache.org/viewvc?rev=1212493&view=rev
Log:
SOLR-2941: NullPointerException on clustering component initialization when schema does not have a unique key field

Modified:
    lucene/dev/trunk/solr/contrib/clustering/CHANGES.txt
    lucene/dev/trunk/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java

Modified: lucene/dev/trunk/solr/contrib/clustering/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/clustering/CHANGES.txt?rev=1212493&r1=1212492&r2=1212493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/clustering/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/contrib/clustering/CHANGES.txt Fri Dec  9 16:03:42 2011
@@ -29,6 +29,9 @@ $Id$
 * SOLR-2940: Passing values for custom Carrot2 fields. The custom field
   mapping are defined using the carrot.custom parameter (Stanislaw Osinski).
 
+* SOLR-2941: NullPointerException on clustering component initialization 
+  when schema does not have a unique key field (Stanislaw Osinski).
+
 ================== Release 3.5.0 ==================
 
 (No Changes)

Modified: lucene/dev/trunk/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java?rev=1212493&r1=1212492&r2=1212493&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java (original)
+++ lucene/dev/trunk/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java Fri Dec  9 16:03:42 2011
@@ -48,6 +48,7 @@ import org.apache.solr.handler.component
 import org.apache.solr.highlight.SolrHighlighter;
 import org.apache.solr.request.LocalSolrQueryRequest;
 import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.schema.SchemaField;
 import org.apache.solr.search.DocList;
 import org.apache.solr.search.DocSlice;
 import org.apache.solr.search.SolrIndexSearcher;
@@ -266,7 +267,13 @@ public class CarrotClusteringEngine exte
         new ClassLoaderLocator(core.getResourceLoader().getClassLoader())));
 
     this.controller.init(initAttributes);
-    this.idFieldName = core.getSchema().getUniqueKeyField().getName();
+    
+    SchemaField uniqueField = core.getSchema().getUniqueKeyField();
+    if (uniqueField == null) {
+      throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, 
+          CarrotClusteringEngine.class.getSimpleName() + " requires the schema to have a uniqueKeyField");
+    }
+    this.idFieldName = uniqueField.getName();
 
     // Make sure the requested Carrot2 clustering algorithm class is available
     String carrotAlgorithmClassName = initParams.get(CarrotParams.ALGORITHM);