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 2011/03/25 19:39:00 UTC
svn commit: r1085506 - in /incubator/lcf/trunk: CHANGES.txt
framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java
Author: kwright
Date: Fri Mar 25 18:39:00 2011
New Revision: 1085506
URL: http://svn.apache.org/viewvc?rev=1085506&view=rev
Log:
Fix for CONNECTORS-171.
Modified:
incubator/lcf/trunk/CHANGES.txt
incubator/lcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java
Modified: incubator/lcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/CHANGES.txt?rev=1085506&r1=1085505&r2=1085506&view=diff
==============================================================================
--- incubator/lcf/trunk/CHANGES.txt (original)
+++ incubator/lcf/trunk/CHANGES.txt Fri Mar 25 18:39:00 2011
@@ -3,6 +3,9 @@ $Id$
======================= 0.3-dev =========================
+CONNECTORS-171: Make sure XML output from within XML document does not
+corrupt entity references.
+(Fuad Efendi)
======================= Release 0.2 =======================
Release Date: See http://incubator.apache.org/connectors for the official release date.
Modified: incubator/lcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java?rev=1085506&r1=1085505&r2=1085506&view=diff
==============================================================================
--- incubator/lcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java (original)
+++ incubator/lcf/trunk/framework/agents/src/main/java/org/apache/manifoldcf/agents/common/XMLWriterContext.java Fri Mar 25 18:39:00 2011
@@ -76,7 +76,7 @@ public class XMLWriterContext extends XM
{
try
{
- theWriter.write(ch,start,length);
+ escapeCharData(ch,start,length,theWriter);
}
catch (java.net.SocketTimeoutException e)
{
@@ -178,4 +178,20 @@ public class XMLWriterContext extends XM
}
return rval.toString();
}
+
+ /** Escapes sequence of characters to output writer */
+ protected static void escapeCharData(char [] chars, int start, int length, Writer out) throws IOException
+ {
+ for (int i=start; i<length; i++) {
+ char x = chars[i];
+ if (x == '<' || x == '>' || x == '&'|| (x < ' ' && x >= 0))
+ {
+ StringBuffer rval = new StringBuffer();
+ rval.append("&#").append(Integer.toString((int)x)).append(";");
+ out.write(rval.toString());
+ continue;
+ }
+ out.write(x);
+ }
+ }
}