incubator-connectors-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kwri...@apache.org
Subject svn commit: r942087 - /incubator/lcf/trunk/modules/connectors/solr/connector/org/apache/lcf/agents/output/solr/HttpPoster.java
Date Fri, 07 May 2010 14:45:11 GMT
Author: kwright
Date: Fri May  7 14:45:11 2010
New Revision: 942087

URL: http://svn.apache.org/viewvc?rev=942087&view=rev
Log:
Properly escape the document identifier for deletions.  Otherwise we get 500 errors on uris
that have ampersands in them.

Modified:
    incubator/lcf/trunk/modules/connectors/solr/connector/org/apache/lcf/agents/output/solr/HttpPoster.java

Modified: incubator/lcf/trunk/modules/connectors/solr/connector/org/apache/lcf/agents/output/solr/HttpPoster.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/connectors/solr/connector/org/apache/lcf/agents/output/solr/HttpPoster.java?rev=942087&r1=942086&r2=942087&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/connectors/solr/connector/org/apache/lcf/agents/output/solr/HttpPoster.java
(original)
+++ incubator/lcf/trunk/modules/connectors/solr/connector/org/apache/lcf/agents/output/solr/HttpPoster.java
Fri May  7 14:45:11 2010
@@ -840,6 +840,15 @@ public class HttpPoster
     }
   }
   
+  /** XML encoding */
+  protected static String xmlEncode(String input)
+  {
+    StringBuffer sb = new StringBuffer("<![CDATA[");
+    sb.append(input);
+    sb.append("]]>");
+    return sb.toString();
+  }
+  
   /** Killable thread that does ingestions.
   * Java 1.5 stopped permitting thread interruptions to abort socket waits.  As a result,
it is impossible to get threads to shutdown cleanly that are doing
   * such waits.  So, the places where this happens are segregated in their own threads so
that they can be just abandoned.
@@ -1339,7 +1348,7 @@ public class HttpPoster
               OutputStream out = socket.getOutputStream();
               try
               {
-                byte[] requestBytes = ("<delete><id>"+documentURI+"</id></delete>").getBytes("UTF-8");
+                byte[] requestBytes = ("<delete><id>"+xmlEncode(documentURI)+"</id></delete>").getBytes("UTF-8");
                 long startTime = System.currentTimeMillis();
                 byte[] tmp = ("POST " + postRemoveAction + " HTTP/1.0\r\n").getBytes("ASCII");
                 out.write(tmp, 0, tmp.length);



Mime
View raw message