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("&amp;");
  -                      break;
  -          case '\"' : strBuf.append("&quot;");
  -                      break;
  -          case '\'' : strBuf.append("&apos;");
  -                      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("&lt;");
  -                          }
  -                        }
  -                        else
  -                        {
  -                          strBuf.append("&lt;");
  -                        }
  -                      }
  -                      break;
  -          case '>'  : strBuf.append("&gt;");
  -                      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("&amp;");
  +                    break;
  +        case '\"' : strBuf.append("&quot;");
  +                    break;
  +        case '\'' : strBuf.append("&apos;");
  +                    break;
  +        case '<'  : strBuf.append("&lt;");
  +                    break;
  +        case '>'  : strBuf.append("&gt;");
  +                    break;
  +        default   : strBuf.append(chars[i]);
  +                    break;
         }
       }