Author: kwright
Date: Mon Feb 11 20:26:28 2013
New Revision: 1444947
URL: http://svn.apache.org/r1444947
Log:
Escape appropriate values. Part of CONNECTORS-641.
Modified:
manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
Modified:
manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java?rev=1444947&r1=1444946&r2=1444947&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
(original)
+++
manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
Mon Feb 11 20:26:28 2013
@@ -97,7 +97,7 @@ public class ElasticSearchIndex extends
if(fieldValues.length>1){
for(int j=0; j<fieldValues.length; j++){
String fieldValue = fieldValues[j];
- pw.print("\""+fieldName+"\" : \""+fieldValue+"\"");
+ pw.print(jsonStringEscape(fieldName)+" :
"+jsonStringEscape(fieldValue));
if(j<fieldValues.length-1){
pw.print(",");
}
@@ -105,7 +105,7 @@ public class ElasticSearchIndex extends
}
} else if(fieldValues.length==1){
String fieldValue = fieldValues[0];
- pw.print("\""+fieldName+"\" : \""+fieldValue+"\"");
+ pw.print(jsonStringEscape(fieldName)+" :
"+jsonStringEscape(fieldValue));
if(i.hasNext()){
pw.print(",");
}
@@ -152,6 +152,20 @@ public class ElasticSearchIndex extends
}
+ protected static String jsonStringEscape(String value)
+ {
+ StringBuilder sb = new StringBuilder("\"");
+ for (int i = 0; i < value.length(); i++)
+ {
+ char x = value.charAt(i);
+ if (x == '\"' || x == '\\' || x == '/')
+ sb.append('\\');
+ sb.append(x);
+ }
+ sb.append("\"");
+ return sb.toString();
+ }
+
public ElasticSearchIndex(HttpClient client, ElasticSearchConfig config)
{
super(config, client);