# HG changeset patch # User aefimov # Date 1428585823 -10800 # Node ID 3b1dd57552bbfb3b9bce5b97088c406626336b1b # Parent 63a4c5442c677ba331f0f72102e60ff34a8b6e73 8073385: Bad error message on parsing illegal character in XML attribute Reviewed-by: joehw diff -r 63a4c5442c67 -r 3b1dd57552bb drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java --- a/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java Wed Apr 15 02:12:34 2015 +0100 +++ b/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java Thu Apr 09 16:23:43 2015 +0300 @@ -1413,7 +1413,7 @@ // AttValue boolean isVC = !fStandalone && (fSeenExternalDTD || fSeenExternalPE) ; scanAttributeValue(defaultVal, nonNormalizedDefaultVal, atName, - fAttributes, 0, isVC); + fAttributes, 0, isVC, elName); } return defaultType; diff -r 63a4c5442c67 -r 3b1dd57552bb drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java --- a/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Wed Apr 15 02:12:34 2015 +0100 +++ b/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Thu Apr 09 16:23:43 2015 +0300 @@ -1526,7 +1526,7 @@ scanAttributeValue(tmpStr, fTempString2, fAttributeQName.rawname, attributes, - attIndex, isVC); + attIndex, isVC, fCurrentElement.rawname); // content int oldLen = attributes.getLength(); diff -r 63a4c5442c67 -r 3b1dd57552bb drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java --- a/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java Wed Apr 15 02:12:34 2015 +0100 +++ b/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java Thu Apr 09 16:23:43 2015 +0300 @@ -438,7 +438,7 @@ XMLString tmpStr = getString(); scanAttributeValue(tmpStr, fTempString2, fAttributeQName.rawname, attributes, - attrIndex, isVC); + attrIndex, isVC, fCurrentElement.rawname); String value = null; //fTempString.toString(); diff -r 63a4c5442c67 -r 3b1dd57552bb drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java --- a/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Wed Apr 15 02:12:34 2015 +0100 +++ b/drop_included/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Thu Apr 09 16:23:43 2015 +0300 @@ -828,6 +828,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. * * Note: This method uses fStringBuffer2, anything in it * at the time of calling is lost. @@ -836,13 +837,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(); @@ -968,7 +969,7 @@ } } else if (c == '<') { reportFatalError("LessthanInAttValue", - new Object[] { null, atName }); + new Object[] { eleName, atName }); fEntityScanner.scanChar(); if (entityDepth == fEntityDepth && fNeedNonNormalizedValue) { fStringBuffer2.append((char)c); @@ -1003,7 +1004,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); @@ -1032,7 +1033,7 @@ // quote int cquote = fEntityScanner.scanChar(); if (cquote != quote) { - reportFatalError("CloseQuoteExpected", new Object[]{atName}); + reportFatalError("CloseQuoteExpected", new Object[]{eleName, atName}); } } // scanAttributeValue()