You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/02/11 21:26:29 UTC
svn commit: r1444947 -
/manifoldcf/trunk/connectors/elasticsearch/connector/src/main/java/org/apache/manifoldcf/agents/output/elasticsearch/ElasticSearchIndex.java
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);