diff options
author | Chris Burdess <dog@bluezoo.org> | 2006-03-12 15:55:59 +0000 |
---|---|---|
committer | Chris Burdess <dog@bluezoo.org> | 2006-03-12 15:55:59 +0000 |
commit | cd778749b76bfc3306376ec6d0b96f4afed4ecee (patch) | |
tree | 33319cb50d9ac6b47e32479d98bd0440a94530b1 /gnu/xml/stream/XMLParser.java | |
parent | 4a51354b967f8e1f8c229e373f29da783f7d4f0d (diff) | |
download | classpath-cd778749b76bfc3306376ec6d0b96f4afed4ecee.tar.gz |
2006-03-12 Chris Burdess <dog@gnu.org>
Fixes PR 26652
* gnu/xml/stream/XMLParser.java: Fix for case when both reader and
encoding are specified.
Diffstat (limited to 'gnu/xml/stream/XMLParser.java')
-rw-r--r-- | gnu/xml/stream/XMLParser.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gnu/xml/stream/XMLParser.java b/gnu/xml/stream/XMLParser.java index 9bb483426..16c5bd4d1 100644 --- a/gnu/xml/stream/XMLParser.java +++ b/gnu/xml/stream/XMLParser.java @@ -4965,6 +4965,7 @@ public class XMLParser Reader reader; UnicodeReader unicodeReader; boolean initialized; + boolean encodingDetected; String inputEncoding; boolean xml11; @@ -5174,6 +5175,7 @@ public class XMLParser in.read(); in.read(); setInputEncoding("UTF-32BE"); + encodingDetected = true; } else if (equals(SIGNATURE_UCS_4_4321, signature)) { @@ -5182,6 +5184,7 @@ public class XMLParser in.read(); in.read(); setInputEncoding("UTF-32LE"); + encodingDetected = true; } else if (equals(SIGNATURE_UCS_4_2143, signature) || equals(SIGNATURE_UCS_4_3412, signature)) @@ -5193,12 +5196,14 @@ public class XMLParser in.read(); in.read(); setInputEncoding("UTF-16BE"); + encodingDetected = true; } else if (equals(SIGNATURE_UCS_2_21, signature)) { in.read(); in.read(); setInputEncoding("UTF-16LE"); + encodingDetected = true; } else if (equals(SIGNATURE_UCS_2_12_NOBOM, signature)) { @@ -5214,6 +5219,7 @@ public class XMLParser else if (equals(SIGNATURE_UTF_8, signature)) { // UTF-8 input encoding implied, TextDecl + encodingDetected = true; } else if (equals(SIGNATURE_UTF_8_BOM, signature)) { @@ -5221,6 +5227,7 @@ public class XMLParser in.read(); in.read(); setInputEncoding("UTF-8"); + encodingDetected = true; } } @@ -5242,7 +5249,7 @@ public class XMLParser if ("UTF-16".equalsIgnoreCase(encoding) && inputEncoding.startsWith("UTF-16")) return; - if (reader != null) + if (encodingDetected) throw new UnsupportedEncodingException("document is not in its " + "declared encoding " + inputEncoding + |