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