Hi,

I'm currently using XML-RPC 3.0, and discovered that
DefaultXmlWriterFactory never use CharSetXmlWriterFactory because
CharSetXMLWriter is broken.

  - CharSetXMLWriter#startDocument() throws IllegalArgumentException
    when encoding == null.
    (Charset.forName(null) cause IllegalArgumentException)

the patch also fixes bellow issues.

  - CharSetXMLWriter doesn't generate 'XML declaration' because
    #startDocument() overrides super.startDocument();

  - #canEncode(char) should work when charsetEncoder == null.

Hope this helps.
--
  Yasuoka Masahiko
  Internet Initiative Japan Inc.
--- src/main/java/org/apache/ws/commons/serialize/CharSetXMLWriter.java-ORIG    
2005-05-22 07:03:25.000000000 +0900
+++ src/main/java/org/apache/ws/commons/serialize/CharSetXMLWriter.java 
2006-10-09 19:42:59.000000000 +0900
@@ -29,13 +29,16 @@
        private CharsetEncoder charsetEncoder;
        
        public void startDocument() throws SAXException {
-               Charset charSet = Charset.forName(getEncoding());
-               if (charSet.canEncode()) {
-                       charsetEncoder = charSet.newEncoder();
+               if (getEncoding() != null) {
+                       Charset charSet = Charset.forName(getEncoding());
+                       if (charSet.canEncode()) {
+                               charsetEncoder = charSet.newEncoder();
+                       }
                }
+               super.startDocument();
        }
        
        public boolean canEncode(char c) {
-               return (charsetEncoder == null) ? false : 
charsetEncoder.canEncode(c);
+               return (charsetEncoder == null) ? super.canEncode(c) : 
charsetEncoder.canEncode(c);
        }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to