Mercurial > hg > openjdk > jdk8u > jaxp
changeset 1062:6d00551f02fc
Merge
author | asaha |
---|---|
date | Tue, 05 May 2015 13:18:25 -0700 |
parents | 2b68c254ab30 (current diff) 966c04d57028 (diff) |
children | 8b35d78c6ae4 |
files | .hgtags src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java |
diffstat | 6 files changed, 25 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Tue Apr 28 16:07:40 2015 +0300 +++ b/.hgtags Tue May 05 13:18:25 2015 -0700 @@ -400,6 +400,7 @@ 91d1102264e9b58b2ada4b5f112d472f0d86092b jdk8u45-b12 a15025742f201f05ead3d731780a4ad437524491 jdk8u45-b13 e0167ec9d7596ab9ac52a8c3b85c1aef5d3fbd92 jdk8u45-b14 +bf813e10d0bac17866ef2389baa8a1e6494e7800 jdk8u45-b15 74452b827b62c31220709d14a65e71f37795199a jdk8u45-b31 90fe13eb35388e095383bcb81eeb6d24875e3054 jdk8u45-b32 ef437e576e3654f6f9c0cc116a0a824f382b9007 jdk8u51-b00 @@ -413,6 +414,7 @@ 710b56801de0147716d91be7226b125b5a64c2ef jdk8u51-b08 3b4c837abdf678ea2e60efcd2d20cc9ff1123c06 jdk8u51-b09 7aacd8c67160af67f7c9d81974d021eeb229929e jdk8u51-b10 +04005432fba4982e5c073be55b917f8a11c838f0 jdk8u51-b11 d6ef96871920e6f6a0c437850c5afb6d7fc5b4f8 jdk8u52-b06 aa8bfb1b3e83bdda687d6c065bb51174d8cc5a81 jdk8u52-b07 d6ef96871920e6f6a0c437850c5afb6d7fc5b4f8 jdk8u65-b00
--- a/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java Tue Apr 28 16:07:40 2015 +0300 +++ b/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java Tue May 05 13:18:25 2015 -0700 @@ -267,7 +267,7 @@ if (Double.isNaN(start)) return(EMPTYSTRING); - final int strlen = value.length(); + final int strlen = getStringLength(value); int istart = (int)Math.round(start) - 1; if (istart > strlen) @@ -275,6 +275,7 @@ if (istart < 1) istart = 0; try { + istart = value.offsetByCodePoints(0, istart); return value.substring(istart); } catch (IndexOutOfBoundsException e) { runTimeError(RUN_TIME_INTERNAL_ERR, "substring()"); @@ -294,24 +295,30 @@ return(EMPTYSTRING); int istart = (int)Math.round(start) - 1; + int ilength = (int)Math.round(length); final int isum; if (Double.isInfinite(length)) isum = Integer.MAX_VALUE; else - isum = istart + (int)Math.round(length); + isum = istart + ilength; - final int strlen = value.length(); + final int strlen = getStringLength(value); if (isum < 0 || istart > strlen) return(EMPTYSTRING); - if (istart < 0) + if (istart < 0) { + ilength += istart; istart = 0; + } try { - if (isum > strlen) + istart = value.offsetByCodePoints(0, istart); + if (isum > strlen) { return value.substring(istart); - else - return value.substring(istart, isum); + } else { + int offset = value.offsetByCodePoints(istart, ilength); + return value.substring(istart, offset); + } } catch (IndexOutOfBoundsException e) { runTimeError(RUN_TIME_INTERNAL_ERR, "substring()"); return null;
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java Tue Apr 28 16:07:40 2015 +0300 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java Tue May 05 13:18:25 2015 -0700 @@ -1418,7 +1418,7 @@ // AttValue boolean isVC = !fStandalone && (fSeenExternalDTD || fSeenExternalPE) ; scanAttributeValue(defaultVal, nonNormalizedDefaultVal, atName, - fAttributes, 0, isVC); + fAttributes, 0, isVC, elName); } return defaultType;
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Tue Apr 28 16:07:40 2015 +0300 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Tue May 05 13:18:25 2015 -0700 @@ -1546,7 +1546,7 @@ scanAttributeValue(tmpStr, fTempString2, fAttributeQName.rawname, attributes, - attIndex, isVC); + attIndex, isVC, fCurrentElement.rawname); // content int oldLen = attributes.getLength();
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java Tue Apr 28 16:07:40 2015 +0300 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java Tue May 05 13:18:25 2015 -0700 @@ -438,7 +438,7 @@ XMLString tmpStr = getString(); scanAttributeValue(tmpStr, fTempString2, fAttributeQName.rawname, attributes, - attrIndex, isVC); + attrIndex, isVC, fCurrentElement.rawname); String value = null; //fTempString.toString();
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Tue Apr 28 16:07:40 2015 +0300 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Tue May 05 13:18:25 2015 -0700 @@ -812,6 +812,7 @@ * @param attrIndex The index of the attribute to use from the list. * @param checkEntities true if undeclared entities should be reported as VC violation, * false if undeclared entities should be reported as WFC violation. + * @param eleName The name of element to which this attribute belongs. * * <strong>Note:</strong> This method uses fStringBuffer2, anything in it * at the time of calling is lost. @@ -820,13 +821,13 @@ XMLString nonNormalizedValue, String atName, XMLAttributes attributes, int attrIndex, - boolean checkEntities) + boolean checkEntities, String eleName) throws IOException, XNIException { XMLStringBuffer stringBuffer = null; // quote int quote = fEntityScanner.peekChar(); if (quote != '\'' && quote != '"') { - reportFatalError("OpenQuoteExpected", new Object[]{atName}); + reportFatalError("OpenQuoteExpected", new Object[]{eleName, atName}); } fEntityScanner.scanChar(); @@ -952,7 +953,7 @@ } } else if (c == '<') { reportFatalError("LessthanInAttValue", - new Object[] { null, atName }); + new Object[] { eleName, atName }); fEntityScanner.scanChar(); if (entityDepth == fEntityDepth && fNeedNonNormalizedValue) { fStringBuffer2.append((char)c); @@ -987,7 +988,7 @@ } } else if (c != -1 && isInvalidLiteral(c)) { reportFatalError("InvalidCharInAttValue", - new Object[] {Integer.toString(c, 16)}); + new Object[] {eleName, atName, Integer.toString(c, 16)}); fEntityScanner.scanChar(); if (entityDepth == fEntityDepth && fNeedNonNormalizedValue) { fStringBuffer2.append((char)c); @@ -1016,7 +1017,7 @@ // quote int cquote = fEntityScanner.scanChar(); if (cquote != quote) { - reportFatalError("CloseQuoteExpected", new Object[]{atName}); + reportFatalError("CloseQuoteExpected", new Object[]{eleName, atName}); } } // scanAttributeValue()