You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2005/04/18 06:54:06 UTC

cvs commit: xml-xerces/java/src/org/apache/xml/serialize XML11Serializer.java XMLSerializer.java

mrglavas    2005/04/17 21:54:06

  Modified:    java/src/org/apache/xml/serialize XML11Serializer.java
                        XMLSerializer.java
  Log:
  Fixing JIRA Issue #1063:
  http://issues.apache.org/jira/browse/XERCESJ-1063
  
  When start >= length a fatal error was emitted for surrogate characters.
  Since length is decremented on each loop and since start is an offset which
  doesn't necessarily start from zero this comparison isn't valid. Should be
  fixed now.
  
  Revision  Changes    Path
  1.11      +7 -10     xml-xerces/java/src/org/apache/xml/serialize/XML11Serializer.java
  
  Index: XML11Serializer.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xml/serialize/XML11Serializer.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XML11Serializer.java	14 May 2004 19:37:53 -0000	1.10
  +++ XML11Serializer.java	18 Apr 2005 04:54:06 -0000	1.11
  @@ -482,12 +482,11 @@
               // consolidating spaces. If a line terminator is used, a line
               // break will occur.
               while ( length-- > 0 ) {
  -                ch = chars[ start ];
  -                ++start;
  +                ch = chars[start++];
                   if (!XML11Char.isXML11Valid(ch)) {
                       // check if it is surrogate
  -                    if (++start <length) {
  -                        surrogates(ch, chars[start]);
  +                    if ( length-- > 0) {
  +                        surrogates(ch, chars[start++]);
                       } else {
                           fatalError("The character '"+(char)ch+"' is an invalid XML character"); 
                       }
  @@ -505,13 +504,11 @@
               // by printing mechanism. Line terminator is treated
               // no different than other text part.
               while ( length-- > 0 ) {
  -                ch = chars[ start ];
  -                ++start;
  -
  +                ch = chars[start++];
                   if (!XML11Char.isXML11Valid(ch)) {
                       // check if it is surrogate
  -                    if (++start <length) {
  -                        surrogates(ch, chars[start]);
  +                    if ( length-- > 0) {
  +                        surrogates(ch, chars[start++]);
                       } else {
                           fatalError("The character '"+(char)ch+"' is an invalid XML character"); 
                       }
  
  
  
  1.65      +7 -10     xml-xerces/java/src/org/apache/xml/serialize/XMLSerializer.java
  
  Index: XMLSerializer.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xml/serialize/XMLSerializer.java,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- XMLSerializer.java	10 Feb 2005 19:37:21 -0000	1.64
  +++ XMLSerializer.java	18 Apr 2005 04:54:06 -0000	1.65
  @@ -1338,12 +1338,11 @@
               // consolidating spaces. If a line terminator is used, a line
               // break will occur.
               while ( length-- > 0 ) {
  -                ch = chars[ start ];
  -                ++start;
  +                ch = chars[start++];
                   if (!XMLChar.isValid(ch)) {
                       // check if it is surrogate
  -                    if (++start <length) {
  -                        surrogates(ch, chars[start]);
  +                    if ( length-- > 0 ) {
  +                        surrogates(ch, chars[start++]);
                       } else {
                           fatalError("The character '"+(char)ch+"' is an invalid XML character"); 
                       }
  @@ -1361,13 +1360,11 @@
               // by printing mechanism. Line terminator is treated
               // no different than other text part.
               while ( length-- > 0 ) {
  -                ch = chars[ start ];
  -                ++start;
  -
  +                ch = chars[start++];
                   if (!XMLChar.isValid(ch)) {
                       // check if it is surrogate
  -                    if (++start <length) {
  -                        surrogates(ch, chars[start]);
  +                    if ( length-- > 0 ) {
  +                        surrogates(ch, chars[start++]);
                       } else {
                           fatalError("The character '"+(char)ch+"' is an invalid XML character"); 
                       }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org