You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by jo...@apache.org on 2003/11/07 15:33:40 UTC

cvs commit: cocoon-2.2/src/java/org/apache/cocoon/components/sax XMLByteStreamCompiler.java

joerg       2003/11/07 06:33:40

  Modified:    src/java/org/apache/cocoon/components/sax
                        XMLByteStreamCompiler.java
  Log:
  XMLByteStreamCompiler now handles also text nodes longer than 32 k (thanks to Simon Mieth)
  
  Revision  Changes    Path
  1.5       +9 -3      cocoon-2.2/src/java/org/apache/cocoon/components/sax/XMLByteStreamCompiler.java
  
  Index: XMLByteStreamCompiler.java
  ===================================================================
  RCS file: /home/cvs/cocoon-2.2/src/java/org/apache/cocoon/components/sax/XMLByteStreamCompiler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLByteStreamCompiler.java	23 Oct 2003 08:37:44 -0000	1.4
  +++ XMLByteStreamCompiler.java	7 Nov 2003 14:33:40 -0000	1.5
  @@ -317,8 +317,14 @@
               }
           }
   
  -        if (utflen > 0x00007FFF)
  -            throw new SAXException("UTFDataFormatException: String cannot be longer than 32k.");
  +        if (utflen > 0x00007FFF) {
  +            // handling "UTFDataFormatException: String cannot be longer than 32k."
  +            int split = length / 2;
  +            writeChars(ch, start, length - split);
  +            writeEvent(CHARACTERS);
  +            writeChars(ch, start + length - split, split);
  +            return;
  +        }
   
           byte[] bytearr = new byte[utflen+2];
           bytearr[count++] = (byte) ((utflen >>> 8) & 0xFF);