Mercurial > hg > release > icedtea8-forest-3.0 > jaxp
changeset 358:57476f66e13c jdk8-b45
Merge
author | lana |
---|---|
date | Tue, 26 Jun 2012 10:27:51 -0700 |
parents | 54a86b897fe8 (current diff) c865c6951fea (diff) |
children | 5bc78d89bc88 300f45e99064 219e720a1baa |
files | |
diffstat | 1 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Mon Jun 25 21:37:34 2012 -0700 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Tue Jun 26 10:27:51 2012 -0700 @@ -402,6 +402,16 @@ boolean dataFoundForTarget = false; boolean sawSpace = fEntityScanner.skipSpaces(); + // since pseudoattributes are *not* attributes, + // their quotes don't need to be preserved in external parameter entities. + // the XMLEntityScanner#scanLiteral method will continue to + // emit -1 in such cases when it finds a quote; this is + // fine for other methods that parse scanned entities, + // but not for the scanning of pseudoattributes. So, + // temporarily, we must mark the current entity as not being "literal" + Entity.ScannedEntity currEnt = fEntityManager.getCurrentEntity(); + boolean currLiteral = currEnt.literal; + currEnt.literal = false; while (fEntityScanner.peekChar() != '?') { dataFoundForTarget = true; String name = scanPseudoAttribute(scanningTextDecl, fString); @@ -499,6 +509,9 @@ } sawSpace = fEntityScanner.skipSpaces(); } + // restore original literal value + if(currLiteral) + currEnt.literal = true; // REVISIT: should we remove this error reporting? if (scanningTextDecl && state != STATE_DONE) { reportFatalError("MorePseudoAttributes", null);