# HG changeset patch # User asaha # Date 1339794394 25200 # Node ID 177e73ed1e7d69d99528597b16b19d4f289e0ece # Parent 3da1a0be389292dd83d4c55b7e0ec466d71fa30e# Parent daaca68b0cd8ff95f4b4a8410204a487a6dd4af8 Merge diff -r 3da1a0be3892 -r 177e73ed1e7d .hgtags --- a/.hgtags Thu Jun 14 15:45:18 2012 -0700 +++ b/.hgtags Fri Jun 15 14:06:34 2012 -0700 @@ -159,12 +159,21 @@ b4e5df5b18bb75db15ed97da02e5df086d2c7930 jdk7u4-b12 7d18bccaec3781f3d4f2d71879f91e257db2f0f7 jdk7u4-b13 82c5b3166b3194e7348b2a9d146b6760c9a77128 jdk7u4-b14 +36490d49683f7be9d8fbbe1f8eefa1fe9fe550fa jdk7u5-b01 36490d49683f7be9d8fbbe1f8eefa1fe9fe550fa jdk7u4-b15 5c881231f1161fbc4fe86383ce59dd6a1bbe4f8e jdk7u4-b16 77a453ae863fee408035c8986f7e3bb22b7252cb jdk7u4-b17 02400887d8c82eab88933df7167d1f8ab826113f jdk7u4-b18 eb1f8bea2e93a498a9b9f42d33efad564d960407 jdk7u4-b19 b08fa5f665726f578674c2d93b21b37a4330b16f jdk7u4-b20 +501dd924118687733a875bdbebfba3f98ca38a6c jdk7u4-b30 +a90108a5e1612782c4ab49a3e7de422cce7280d8 jdk7u4-b21 +9de44cdaafe7d5fcc0e8f0bc7c7b4df782e8293e jdk7u4-b22 +75ffe94cf0fbbe1a3ed7f613fb60dc2b76c89cb5 jdk7u4-b31 +aa6df713daa9dbddd7fa31db29c6c493687feaa9 jdk7u5-b02 +661bf134f96513c06f009cb4c38e21d661fb2ed5 jdk7u5-b04 +bfd88f182bbeb52d27574efc97e7b1e7c417d90b jdk7u5-b05 +00bf886e24075477b8df5ddff31542eaa5f2fce0 jdk7u5-b30 82c5b3166b3194e7348b2a9d146b6760c9a77128 jdk7u6-b01 6211e6e5c90efab0d033a99d9797a60aaad1f203 jdk7u6-b02 2b8fd45212c5846f7c60e0b64fec9f0fba77b372 jdk7u6-b03 diff -r 3da1a0be3892 -r 177e73ed1e7d src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java --- a/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Thu Jun 14 15:45:18 2012 -0700 +++ b/src/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Fri Jun 15 14:06:34 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);