mirror of https://github.com/apache/lucene.git
SOLR-1235 disallow period (.) in entity names
git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@787139 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
60c19978cd
commit
e1a8f5e8b2
|
@ -147,6 +147,8 @@ New Features
|
||||||
|
|
||||||
34.SOLR-1230: Enhanced dataimport.jsp to work with all DataImportHandler request handler configurations,
|
34.SOLR-1230: Enhanced dataimport.jsp to work with all DataImportHandler request handler configurations,
|
||||||
rather than just a hardcoded /dataimport handler. (ehatcher)
|
rather than just a hardcoded /dataimport handler. (ehatcher)
|
||||||
|
|
||||||
|
35.SOLR-1235: disallow period (.) in entity names (noble)
|
||||||
|
|
||||||
Optimizations
|
Optimizations
|
||||||
----------------------
|
----------------------
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.w3c.dom.NamedNodeMap;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
import org.apache.solr.schema.SchemaField;
|
import org.apache.solr.schema.SchemaField;
|
||||||
|
import static org.apache.solr.handler.dataimport.DataImportHandlerException.SEVERE;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
@ -111,8 +112,14 @@ public class DataConfig {
|
||||||
|
|
||||||
public Entity(Element element) {
|
public Entity(Element element) {
|
||||||
name = getStringAttribute(element, NAME, null);
|
name = getStringAttribute(element, NAME, null);
|
||||||
|
if(name == null){
|
||||||
|
throw new DataImportHandlerException(SEVERE, "Entity must have name '" );
|
||||||
|
}
|
||||||
|
if(name.indexOf(".") != -1){
|
||||||
|
throw new DataImportHandlerException(SEVERE, "Entity name must not have period (.): '" + name);
|
||||||
|
}
|
||||||
if (RESERVED_WORDS.contains(name)) {
|
if (RESERVED_WORDS.contains(name)) {
|
||||||
throw new DataImportHandlerException(DataImportHandlerException.SEVERE, "Entity name : '" + name
|
throw new DataImportHandlerException(SEVERE, "Entity name : '" + name
|
||||||
+ "' is a reserved keyword. Reserved words are: " + RESERVED_WORDS);
|
+ "' is a reserved keyword. Reserved words are: " + RESERVED_WORDS);
|
||||||
}
|
}
|
||||||
pk = getStringAttribute(element, "pk", null);
|
pk = getStringAttribute(element, "pk", null);
|
||||||
|
@ -208,7 +215,7 @@ public class DataConfig {
|
||||||
this.name = getStringAttribute(e, DataImporter.NAME, null);
|
this.name = getStringAttribute(e, DataImporter.NAME, null);
|
||||||
this.column = getStringAttribute(e, DataImporter.COLUMN, null);
|
this.column = getStringAttribute(e, DataImporter.COLUMN, null);
|
||||||
if (column == null) {
|
if (column == null) {
|
||||||
throw new DataImportHandlerException(DataImportHandlerException.SEVERE, "Field must have a column attribute");
|
throw new DataImportHandlerException(SEVERE, "Field must have a column attribute");
|
||||||
}
|
}
|
||||||
this.boost = Float.parseFloat(getStringAttribute(e, "boost", "1.0f"));
|
this.boost = Float.parseFloat(getStringAttribute(e, "boost", "1.0f"));
|
||||||
allAttributes.putAll(getAllAttributes(e));
|
allAttributes.putAll(getAllAttributes(e));
|
||||||
|
@ -225,7 +232,7 @@ public class DataConfig {
|
||||||
public void readFromXml(Element e) {
|
public void readFromXml(Element e) {
|
||||||
List<Element> n = getChildNodes(e, "document");
|
List<Element> n = getChildNodes(e, "document");
|
||||||
if (n.isEmpty()) {
|
if (n.isEmpty()) {
|
||||||
throw new DataImportHandlerException(DataImportHandlerException.SEVERE, "DataImportHandler " +
|
throw new DataImportHandlerException(SEVERE, "DataImportHandler " +
|
||||||
"configuration file must have one <document> node.");
|
"configuration file must have one <document> node.");
|
||||||
}
|
}
|
||||||
document = new Document(n.get(0));
|
document = new Document(n.get(0));
|
||||||
|
@ -243,7 +250,7 @@ public class DataConfig {
|
||||||
String clz = getStringAttribute(element, CLASS, null);
|
String clz = getStringAttribute(element, CLASS, null);
|
||||||
if (func == null || clz == null){
|
if (func == null || clz == null){
|
||||||
throw new DataImportHandlerException(
|
throw new DataImportHandlerException(
|
||||||
DataImportHandlerException.SEVERE,
|
SEVERE,
|
||||||
"<function> must have a 'name' and 'class' attributes");
|
"<function> must have a 'name' and 'class' attributes");
|
||||||
} else {
|
} else {
|
||||||
functions.add(getAllAttributes(element));
|
functions.add(getAllAttributes(element));
|
||||||
|
@ -317,10 +324,6 @@ public class DataConfig {
|
||||||
|
|
||||||
public static final String NAME = "name";
|
public static final String NAME = "name";
|
||||||
|
|
||||||
public static final String SCRIPT_LANG = "scriptlanguage";
|
|
||||||
|
|
||||||
public static final String SCRIPT_NAME = "scriptname";
|
|
||||||
|
|
||||||
public static final String PROCESSOR = "processor";
|
public static final String PROCESSOR = "processor";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -347,6 +350,7 @@ public class DataConfig {
|
||||||
RESERVED_WORDS.add("delta");
|
RESERVED_WORDS.add("delta");
|
||||||
RESERVED_WORDS.add("functions");
|
RESERVED_WORDS.add("functions");
|
||||||
RESERVED_WORDS.add("session");
|
RESERVED_WORDS.add("session");
|
||||||
|
RESERVED_WORDS.add(SolrWriter.LAST_INDEX_KEY);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue