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);
  
  
  

Reply via email to