changeset 428:7f3cc533e823

Merge
author asaha
date Fri, 06 Apr 2012 17:08:09 -0700
parents abc9f6855a61 (diff) b08fa5f66572 (current diff)
children aa6df713daa9
files .hgtags
diffstat 2 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Thu Apr 05 15:10:35 2012 -0700
+++ b/.hgtags	Fri Apr 06 17:08:09 2012 -0700
@@ -159,6 +159,7 @@
 b4e5df5b18bb75db15ed97da02e5df086d2c7930 jdk7u4-b12
 7d18bccaec3781f3d4f2d71879f91e257db2f0f7 jdk7u4-b13
 82c5b3166b3194e7348b2a9d146b6760c9a77128 jdk7u4-b14
+36490d49683f7be9d8fbbe1f8eefa1fe9fe550fa jdk7u5-b01
 36490d49683f7be9d8fbbe1f8eefa1fe9fe550fa jdk7u4-b15
 5c881231f1161fbc4fe86383ce59dd6a1bbe4f8e jdk7u4-b16
 77a453ae863fee408035c8986f7e3bb22b7252cb jdk7u4-b17
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java	Thu Apr 05 15:10:35 2012 -0700
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java	Fri Apr 06 17:08:09 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);