|
With attached patch this time ;-) Cheers, From: Lawrence Jones Hi all In Saver.java.entitizeCommment() the last 2 lines read: if
(_buf[ _lastEmitIn + _lastEmitCch - 1 ] == '-') but _buf is a circular buffer and it is possible for
(_lastEmitIn + _lastEmitCch – 1) to be > the length of the _buf
buffer. Instead the code should be: int offset = (_lastEmitIn +
_lastEmitCch - 1) % _buf.length; if (_buf[ offset ] == '-') i =
replace( offset, " " ); otherwise you can get an ArrayIndexOutOfBoundException. I am attaching a patch which fixes this. I’d be
grateful if one of the committers would check it in. Thanks, |
Index: src/store/org/apache/xmlbeans/impl/store/Saver.java
===================================================================
--- src/store/org/apache/xmlbeans/impl/store/Saver.java (revision 178805)
+++ src/store/org/apache/xmlbeans/impl/store/Saver.java (working copy)
@@ -1347,8 +1347,9 @@
// Because I have only replaced chars with single chars,
// _lastEmitIn will still be ok
- if (_buf[ _lastEmitIn + _lastEmitCch - 1 ] == '-')
- i = replace( _lastEmitIn + _lastEmitCch - 1, " " );
+ int offset = (_lastEmitIn + _lastEmitCch - 1) % _buf.length;
+ if (_buf[ offset ] == '-')
+ i = replace( offset, " " );
}
private void entitizeProcinst ( )
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
