You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-dev@xml.apache.org by du...@apache.org on 2001/05/21 22:54:03 UTC
cvs commit: xml-soap/java/src/org/apache/soap Utils.java
duftler 01/05/21 13:54:03
Modified: java/src/org/apache/soap Utils.java
Log:
Removed special treatment of CDATA sections in the code that inserts
escape sequences. The code will now round trip Strings correctly,
whether they contain CDATA sections or not.
Submitted by: Michael Spreitzer (mspreitz@us.ibm.com)
Reviewed by: Matthew J. Duftler (duftler@us.ibm.com)
Revision Changes Path
1.9 +14 -49 xml-soap/java/src/org/apache/soap/Utils.java
Index: Utils.java
===================================================================
RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/Utils.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Utils.java 2001/05/19 04:37:50 1.8
+++ Utils.java 2001/05/21 20:54:00 1.9
@@ -68,6 +68,7 @@
*
* @author Sanjiva Weerawarana (sanjiva@watson.ibm.com)
* @author Matthew J. Duftler (duftler@us.ibm.com)
+ * @author Michael Spreitzer (mspreitz@us.ibm.com)
*/
public class Utils
{
@@ -80,59 +81,23 @@
StringBuffer strBuf = new StringBuffer();
char[] chars = orig.toCharArray();
- boolean inCDATA = false;
for (int i = 0; i < chars.length; i++)
{
- if (!inCDATA)
+ switch (chars[i])
{
- switch (chars[i])
- {
- case '&' : strBuf.append("&");
- break;
- case '\"' : strBuf.append(""");
- break;
- case '\'' : strBuf.append("'");
- break;
- case '<' :
- {
- if (chars.length >= i + 9)
- {
- String tempStr = new String(chars, i, 9);
-
- if (tempStr.equals("<![CDATA["))
- {
- strBuf.append(tempStr);
- i += 8;
- inCDATA = true;
- }
- else
- {
- strBuf.append("<");
- }
- }
- else
- {
- strBuf.append("<");
- }
- }
- break;
- case '>' : strBuf.append(">");
- break;
- default : strBuf.append(chars[i]);
- break;
- }
- }
- else
- {
- strBuf.append(chars[i]);
-
- if (chars[i] == '>'
- && chars[i - 1] == ']'
- && chars[i - 2] == ']')
- {
- inCDATA = false;
- }
+ case '&' : strBuf.append("&");
+ break;
+ case '\"' : strBuf.append(""");
+ break;
+ case '\'' : strBuf.append("'");
+ break;
+ case '<' : strBuf.append("<");
+ break;
+ case '>' : strBuf.append(">");
+ break;
+ default : strBuf.append(chars[i]);
+ break;
}
}