author | duke |
Wed, 05 Jul 2017 18:15:59 +0200 | |
changeset 13180 | 8aa9ac63f4ac |
parent 13179 | 6ab81ecbfa0d (diff) |
parent 13174 | 55e64db81468 (current diff) |
child 13182 | f680b32db5a7 |
--- a/jaxp/.hgtags Wed Jul 05 18:15:54 2017 +0200 +++ b/jaxp/.hgtags Wed Jul 05 18:15:59 2017 +0200 @@ -167,3 +167,4 @@ eff4ece9c8bc43b3ce2b3758574c4c20147f0689 jdk8-b43 0b3f3a4ce13930430b32b616a717dfc7fe385b28 jdk8-b44 57476f66e13c55eea2f2fe2b858369a4c64b9936 jdk8-b45 +300f45e990643af230d6cca39477ff62c44a9a54 jdk8-b46
--- a/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Wed Jul 05 18:15:54 2017 +0200 +++ b/jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Wed Jul 05 18:15:59 2017 +0200 @@ -2609,6 +2609,18 @@ if (str == null) { return str; } + int len = str.length(), i=0, ch; + for (; i < len; i++) { + ch = str.charAt(i); + // if it's not an ASCII 7 character, break here, and use UTF-8 encoding + if (ch >= 128) + break; + } + + // we saw no non-ascii-7 character + if (i == len) { + return str; + } // get UTF-8 bytes for the string StringBuffer buffer = new StringBuffer(); @@ -2620,11 +2632,11 @@ // should never happen return str; } - int len = bytes.length; - int ch; + + len = bytes.length; // for each byte - for (int i = 0; i < len; i++) { + for (i = 0; i < len; i++) { b = bytes[i]; // for non-ascii character: make it positive, then escape if (b < 0) {