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 sh...@apache.org on 2009/03/24 10:07:49 UTC

svn commit: r757691 - in /lucene/solr/trunk/contrib/dataimporthandler: CHANGES.txt src/main/java/org/apache/solr/handler/dataimport/DataConfig.java src/main/java/org/apache/solr/handler/dataimport/DataImporter.java

Author: shalin
Date: Tue Mar 24 09:07:47 2009
New Revision: 757691

URL: http://svn.apache.org/viewvc?rev=757691&view=rev
Log:
SOLR-1084 -- Better error reporting when entity name is a reserved word and when data-config.xml is missing the root node

Modified:
    lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java

Modified: lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt?rev=757691&r1=757690&r2=757691&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt Tue Mar 24 09:07:47 2009
@@ -229,6 +229,10 @@
 5. SOLR-1027: Alias the 'dataimporter' namespace to a shorter name 'dih'.
               (Noble Paul via shalin)
 
+6. SOLR-1084: Better error reporting when entity name is a reserved word and data-config.xml root node
+              is not <dataConfig>.
+              (Noble Paul via shalin)
+
 ================== Release 1.3.0 20080915 ==================
 
 Status

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java?rev=757691&r1=757690&r2=757691&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataConfig.java Tue Mar 24 09:07:47 2009
@@ -111,6 +111,10 @@
 
     public Entity(Element element) {
       name = getStringAttribute(element, NAME, null);
+      if (RESERVED_WORDS.contains(name)) {
+        throw new DataImportHandlerException(DataImportHandlerException.SEVERE, "Entity name : '" + name
+                + "' is a reserved keyword. Reserved words are: " + RESERVED_WORDS);
+      }
       pk = getStringAttribute(element, "pk", null);
       docRoot = getStringAttribute(element, ROOT_ENTITY, null);
       proc = getStringAttribute(element, PROCESSOR, null);
@@ -335,4 +339,14 @@
 
   public static final String DATA_SRC = "dataSource";
 
+  private static final Set<String> RESERVED_WORDS = new HashSet<String>();
+  static{
+    RESERVED_WORDS.add(IMPORTER_NS);
+    RESERVED_WORDS.add(IMPORTER_NS_SHORT);
+    RESERVED_WORDS.add("request");
+    RESERVED_WORDS.add("delta");
+    RESERVED_WORDS.add("functions");
+    RESERVED_WORDS.add("session");
+  }
+
 }

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java?rev=757691&r1=757690&r2=757691&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DataImporter.java Tue Mar 24 09:07:47 2009
@@ -26,6 +26,7 @@
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
 import org.xml.sax.InputSource;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -153,9 +154,11 @@
               configFile)));
 
       config = new DataConfig();
-      config.readFromXml((Element) document.getElementsByTagName("dataConfig")
-              .item(0));
-
+      NodeList elems = document.getElementsByTagName("dataConfig");
+      if(elems == null || elems.getLength() == 0) {
+        throw new DataImportHandlerException(DataImportHandlerException.SEVERE, "the root node '<dataConfig>' is missing");
+      }
+      config.readFromXml((Element) elems.item(0));
       LOG.info("Data Configuration loaded successfully");
     } catch (Exception e) {
       SolrConfig.severeErrors.add(e);