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);