diff -r 23ff9c8995c6 xml.core/src/org/netbeans/modules/xml/api/XmlFileEncodingQueryImpl.java --- a/xml.core/src/org/netbeans/modules/xml/api/XmlFileEncodingQueryImpl.java Mon Mar 10 14:16:31 2008 +0100 +++ b/xml.core/src/org/netbeans/modules/xml/api/XmlFileEncodingQueryImpl.java Mon Mar 10 14:56:36 2008 +0100 @@ -36,6 +36,8 @@ import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.CoderResult; +import java.nio.charset.IllegalCharsetNameException; +import java.nio.charset.UnsupportedCharsetException; import java.util.logging.Level; import java.util.logging.Logger; import org.netbeans.spi.queries.FileEncodingQueryImplementation; @@ -141,7 +143,18 @@ public final class XmlFileEncodingQueryI return null; } else { - Charset c = Charset.forName(encoding); + Charset c; + try { + c = Charset.forName(encoding); + } catch (UnsupportedCharsetException e) { + buffer = null; + throwUnknownEncoding(); + return null; + } catch (IllegalCharsetNameException e) { + buffer = null; + throwUnknownEncoding(); + return null; + } encoder = c.newEncoder(); LOG.log (Level.FINEST,ENCODER_SELECTED,encoder); return flushHead(in, out); @@ -261,7 +274,18 @@ public final class XmlFileEncodingQueryI return null; } else { - Charset c = Charset.forName(encoding); + Charset c; + try { + c = Charset.forName(encoding); + } catch (UnsupportedCharsetException e) { + buffer = null; + throwUnknownEncoding(); + return null; + } catch (IllegalCharsetNameException e) { + buffer = null; + throwUnknownEncoding(); + return null; + } decoder = c.newDecoder(); LOG.log (Level.FINEST,DECODER_SELECTED,decoder); return flushHead(in, out); diff -r 23ff9c8995c6 xml.core/test/unit/src/org/netbeans/modules/xml/api/data/data.properties --- a/xml.core/test/unit/src/org/netbeans/modules/xml/api/data/data.properties Mon Mar 10 14:16:31 2008 +0100 +++ b/xml.core/test/unit/src/org/netbeans/modules/xml/api/data/data.properties Mon Mar 10 14:56:36 2008 +0100 @@ -2,3 +2,5 @@ long_encoding.xml=ISO-8859-2 long_encoding.xml=ISO-8859-2 short_no_encoding.xml= long_no_encoding.xml= +illegal_encoding.xml= +unsupported_encoding.xml= diff -r 23ff9c8995c6 xml.core/test/unit/src/org/netbeans/modules/xml/api/data/illegal_encoding.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml.core/test/unit/src/org/netbeans/modules/xml/api/data/illegal_encoding.xml Mon Mar 10 14:56:36 2008 +0100 @@ -0,0 +1,4 @@ + + +Short XML file test. + diff -r 23ff9c8995c6 xml.core/test/unit/src/org/netbeans/modules/xml/api/data/unsupported_encoding.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml.core/test/unit/src/org/netbeans/modules/xml/api/data/unsupported_encoding.xml Mon Mar 10 14:56:36 2008 +0100 @@ -0,0 +1,4 @@ + + +Short XML file test. +