summaryrefslogtreecommitdiff
path: root/gnu/xml/stream/XMLParser.java
diff options
context:
space:
mode:
authorChris Burdess <dog@bluezoo.org>2006-03-12 15:55:59 +0000
committerChris Burdess <dog@bluezoo.org>2006-03-12 15:55:59 +0000
commitcd778749b76bfc3306376ec6d0b96f4afed4ecee (patch)
tree33319cb50d9ac6b47e32479d98bd0440a94530b1 /gnu/xml/stream/XMLParser.java
parent4a51354b967f8e1f8c229e373f29da783f7d4f0d (diff)
downloadclasspath-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.java9
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 +