? ws-xmlrpc.diff
? ws-xmlrpc.iml
? ws-xmlrpc.ipr
? ws-xmlrpc.iws
Index: src/java/org/apache/xmlrpc/DefaultTypeFactory.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/DefaultTypeFactory.java,v
retrieving revision 1.5
diff -u -w -r1.5 DefaultTypeFactory.java
--- src/java/org/apache/xmlrpc/DefaultTypeFactory.java	22 Apr 2005 10:25:57 -0000	1.5
+++ src/java/org/apache/xmlrpc/DefaultTypeFactory.java	5 Jul 2005 12:05:19 -0000
@@ -19,6 +19,7 @@
 
 
 import java.text.ParseException;
+import java.util.TimeZone;
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.DecoderException;
@@ -59,6 +60,10 @@
     {
     }
 
+    public DefaultTypeFactory(TimeZone tz) {
+        dateTool.setTimeZone(tz);
+    }
+
     public Object createInteger(String cdata)
     {
         return new Integer(cdata.trim());
Index: src/java/org/apache/xmlrpc/XmlRpc.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpc.java,v
retrieving revision 1.42
diff -u -w -r1.42 XmlRpc.java
--- src/java/org/apache/xmlrpc/XmlRpc.java	16 May 2005 21:23:21 -0000	1.42
+++ src/java/org/apache/xmlrpc/XmlRpc.java	5 Jul 2005 12:05:19 -0000
@@ -17,18 +17,15 @@
 
 package org.apache.xmlrpc;
 
+import org.xml.sax.*;
+import uk.co.wilson.xml.MinML;
+
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Hashtable;
 import java.util.Stack;
+import java.util.TimeZone;
 import java.util.Vector;
-import org.xml.sax.AttributeList;
-import org.xml.sax.HandlerBase;
-import org.xml.sax.InputSource;
-import org.xml.sax.Parser;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-import uk.co.wilson.xml.MinML;
 
 /**
  * This abstract base class provides basic capabilities for XML-RPC,
@@ -235,7 +232,7 @@
         // If we're using the default, provide it immediately.
         if (c == null || DefaultTypeFactory.class.equals(c))
         {
-            return new DefaultTypeFactory();
+            return new DefaultTypeFactory(tz);
         }
 
         try
@@ -251,8 +248,17 @@
             {
                 e.printStackTrace();
             }
-            return new DefaultTypeFactory();
+            return new DefaultTypeFactory(tz);
+        }
+    }
+
+    TimeZone tz;
+    
+    void setServerTimeZone(TimeZone z) {
+        tz = z;
         }
+    TimeZone getServerTimeZone() {
+        return tz;
     }
 
     /**
Index: src/java/org/apache/xmlrpc/XmlRpcClient.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClient.java,v
retrieving revision 1.22.2.1
diff -u -w -r1.22.2.1 XmlRpcClient.java
--- src/java/org/apache/xmlrpc/XmlRpcClient.java	15 Jun 2005 13:21:22 -0000	1.22.2.1
+++ src/java/org/apache/xmlrpc/XmlRpcClient.java	5 Jul 2005 12:05:19 -0000
@@ -23,6 +23,7 @@
 import java.util.EmptyStackException;
 import java.util.Stack;
 import java.util.Vector;
+import java.util.TimeZone;
 
 /**
  * A multithreaded, reusable XML-RPC client object. Use this if you
@@ -347,12 +348,21 @@
                 {
                     workers += 1;
                 }
-                return new XmlRpcClientWorker();
+                return new XmlRpcClientWorker(getTimeZone());
             }
             throw new IOException("XML-RPC System overload");
         }
     }
 
+    TimeZone tz;
+    public void setTimeZone(TimeZone z) {
+        tz = z;
+    }
+
+    public TimeZone getTimeZone() {
+        return tz;
+    }
+
     /**
      * Release possibly big per-call object references to allow them to be
      * garbage collected
Index: src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java,v
retrieving revision 1.5
diff -u -w -r1.5 XmlRpcClientRequestProcessor.java
--- src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java	14 May 2005 21:31:48 -0000	1.5
+++ src/java/org/apache/xmlrpc/XmlRpcClientRequestProcessor.java	5 Jul 2005 12:05:19 -0000
@@ -20,6 +20,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.TimeZone;
 
 /**
  * Process an XML-RPC client request into a byte array or directly onto
@@ -32,11 +33,13 @@
  */
 public class XmlRpcClientRequestProcessor
 {
+    TimeZone tz;
     /**
      * Creates a new instance.
      */
-    public XmlRpcClientRequestProcessor()
+    public XmlRpcClientRequestProcessor(TimeZone tz)
     {
+        this.tz = tz;
     }
 	
     /**
@@ -45,7 +48,6 @@
      *
      * @param request the request to encode.
      * @param encoding the Java name for the encoding to use.
-     * @return byte [] the encoded request.
      */
     public void encodeRequest(XmlRpcClientRequest request, String encoding,
                               OutputStream out)
@@ -54,7 +56,7 @@
         XmlWriter writer;
 
         writer = new XmlWriter(out, encoding);
-       
+        writer.dateTool.setTimeZone(tz);
         writer.startElement("methodCall");
         writer.startElement("methodName");
         writer.write(request.getMethodName());
Index: src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java,v
retrieving revision 1.4
diff -u -w -r1.4 XmlRpcClientResponseProcessor.java
--- src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java	14 May 2005 21:31:48 -0000	1.4
+++ src/java/org/apache/xmlrpc/XmlRpcClientResponseProcessor.java	5 Jul 2005 12:05:19 -0000
@@ -17,12 +17,13 @@
 
 package org.apache.xmlrpc;
 
-import java.util.Hashtable;
-import java.io.InputStream;
-
 import org.xml.sax.AttributeList;
 import org.xml.sax.SAXException;
 
+import java.io.InputStream;
+import java.util.Hashtable;
+import java.util.TimeZone;
+
 /**
  * Process an XML-RPC server response from a byte array or an
  * InputStream into an Object. Optionally throw the result object
@@ -44,8 +45,9 @@
     /**
      * Creates a new instance.
      */
-    public XmlRpcClientResponseProcessor()
+    public XmlRpcClientResponseProcessor(TimeZone tz)
     {
+        setServerTimeZone(tz);
     }
 
     /**
Index: src/java/org/apache/xmlrpc/XmlRpcClientWorker.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlRpcClientWorker.java,v
retrieving revision 1.6.2.1
diff -u -w -r1.6.2.1 XmlRpcClientWorker.java
--- src/java/org/apache/xmlrpc/XmlRpcClientWorker.java	15 Jun 2005 18:52:14 -0000	1.6.2.1
+++ src/java/org/apache/xmlrpc/XmlRpcClientWorker.java	5 Jul 2005 12:05:20 -0000
@@ -19,6 +19,7 @@
 
 import java.io.InputStream;
 import java.io.IOException;
+import java.util.TimeZone;
 
 /**
  * Tie together the XmlRequestProcessor and XmlResponseProcessor to handle
@@ -38,10 +39,10 @@
      */
     private static final Object PROCESSING_ERROR_FLAG = new Object();
 
-    public XmlRpcClientWorker()
+    public XmlRpcClientWorker(TimeZone tz)
     {
-        this(new XmlRpcClientRequestProcessor(), 
-             new XmlRpcClientResponseProcessor()
+        this(new XmlRpcClientRequestProcessor(tz),
+             new XmlRpcClientResponseProcessor(tz)
         );
     }
 
Index: src/java/org/apache/xmlrpc/XmlWriter.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/XmlWriter.java,v
retrieving revision 1.15
diff -u -w -r1.15 XmlWriter.java
--- src/java/org/apache/xmlrpc/XmlWriter.java	16 May 2005 22:39:27 -0000	1.15
+++ src/java/org/apache/xmlrpc/XmlWriter.java	5 Jul 2005 12:05:20 -0000
@@ -104,7 +104,7 @@
      * Thread-safe wrapper for the <code>DateFormat</code> object used
      * to parse date/time values.
      */
-    private static DateTool dateTool = new DateTool();
+    DateTool dateTool = new DateTool();
 
     /**
      * Whether the XML prolog has been written.
Index: src/java/org/apache/xmlrpc/util/DateTool.java
===================================================================
RCS file: /home/cvspublic/ws-xmlrpc/src/java/org/apache/xmlrpc/util/DateTool.java,v
retrieving revision 1.3
diff -u -w -r1.3 DateTool.java
--- src/java/org/apache/xmlrpc/util/DateTool.java	22 Apr 2005 10:25:58 -0000	1.3
+++ src/java/org/apache/xmlrpc/util/DateTool.java	5 Jul 2005 12:05:20 -0000
@@ -21,6 +21,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.TimeZone;
 
 /**
  * Wraps a <code>DateFormat</code> instance to provide thread safety.
@@ -54,6 +55,10 @@
         return df.format(d);
     }
 
+    public synchronized void setTimeZone(TimeZone z) {
+        if (z != null) df.setTimeZone(z);
+    }
+
     /**
      * @param s The text to parse a date from.
      * @return The parsed date.
