--- old/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java Tue Dec 17 18:59:27 2013 +++ new/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java Tue Dec 17 18:59:26 2013 @@ -1142,7 +1142,7 @@ int i=0; for ( i = offset; i < fCurrentEntity.position; i++) { fCurrentEntity.ch[i] = '\n'; - whiteSpaceLookup[whiteSpaceLen++]=i; + storeWhiteSpace(i); } int length = fCurrentEntity.position - offset; @@ -1163,27 +1163,18 @@ } // scan literal value - while (fCurrentEntity.position < fCurrentEntity.count) { - c = fCurrentEntity.ch[fCurrentEntity.position++]; + for (; fCurrentEntity.position= whiteSpaceLookup.length) { + int [] tmp = new int[whiteSpaceLookup.length + 100]; + System.arraycopy(whiteSpaceLookup, 0, tmp, 0, whiteSpaceLookup.length); + whiteSpaceLookup = tmp; + } + + whiteSpaceLookup[whiteSpaceLen++] = whiteSpacePos; + } + //CHANGED: /** * Scans a range of character data up to the specified delimiter,