Author: mrglavas
Date: Mon Jan 28 11:34:11 2008
New Revision: 616012

URL: http://svn.apache.org/viewvc?rev=616012&view=rev
Log:
Fixing a potential IndexOutOfBoundsException. Need to be careful when the 
remaining
space left in the buffer is less than 
XMLEntityManager.DEFAULT_XMLDECL_BUFFER_SIZE.
Thanks to David Cargill for pointing this problem out.

Modified:
    
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/XMLEntityScanner.java

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/XMLEntityScanner.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/XMLEntityScanner.java?rev=616012&r1=616011&r2=616012&view=diff
==============================================================================
--- 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/XMLEntityScanner.java
 (original)
+++ 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/XMLEntityScanner.java
 Mon Jan 28 11:34:11 2008
@@ -1745,9 +1745,10 @@
 
         fCurrentEntity.baseCharOffset += (fCurrentEntity.position - 
fCurrentEntity.startPosition);
         // read characters
-        int length = fCurrentEntity.mayReadChunks?
-                (fCurrentEntity.ch.length - offset):
-                (XMLEntityManager.DEFAULT_XMLDECL_BUFFER_SIZE);
+        int length = fCurrentEntity.ch.length - offset;
+        if (!fCurrentEntity.mayReadChunks && length > 
XMLEntityManager.DEFAULT_XMLDECL_BUFFER_SIZE) {
+            length = XMLEntityManager.DEFAULT_XMLDECL_BUFFER_SIZE;
+        }
         if (DEBUG_BUFFER) System.out.println("  length to try to read: 
"+length);
         int count = fCurrentEntity.reader.read(fCurrentEntity.ch, offset, 
length);
         if (DEBUG_BUFFER) System.out.println("  length actually read:  
"+count);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to